Bio-impedance spectroscopy, which measures impedance of the tissue over a frequency range, has been widely used to provide crucial information for monitoring human health. Its conventional methods using sine wave current stimulation of the tissue and sine wave demodulation of the resultant voltage provide an accurate impedance measurement, but involve bulky components and power inefficiency due to sinusoidal waveform generation and analog signal multiplication. Instead, the method using square wave clocks can be much more area and power efficient, but inherently has substantial errors in the measured result due to the presence of harmonics in square waves. In this paper we propose a technique to cancel the errors caused by harmonics of the square wave stimulation and demodulation. The technique, based on the fact that the magnitude ratio of all the harmonics of a square wave are known, cancels out harmonic errors by subtracting or adding the square-wave-based measured results at higher harmonics to the fundamental output as a simple post-processing calculation. Simulation results using a generic electrode and tissue model show that this technique can provide a precise measurement of the bio-impedance with <0.5% magnitude error and < 0.2 phase error considering just five frequency multiples. Because this method does not involve sinusoidal signal generation and analog mixing, it is adequate to be integrated in a wearable health monitoring device at low area and power overhead.