The relevant legislation state that speedometers have to be manufactured in such a way that they can never show a speed lower than the true one. However they're allowed a certain degree of inaccuracy with regard to showing speeds higher than the true one. (The figure is usually quoted as 10% but I seem to recall that the actual formula is slightly more complex).
Speedometers show a speed based upon the rotational speed of the wheels, making an assumption that there's a constant ratio between that rotational speed and the linear speed of the vehicle. However tyre wear, tyre pressures and the loading of the vehicle (which compresses the tyres) all affect the diameters of the tyres, so no speedometer can be consistently accurate. So all speedometers are designed in such a way that they'll normally slightly over-read the speed of the vehicle, so that the speed displayed will never be below the true one, irrespective of the state of the tyres.
Satnavs are incredibly accurate. Theoretically they display a speed with a slight time lag. But the signal from each satellite takes less than an eighth of a second to reach your satnav, and the device processes the signals in roughly the same amount of time, so any time lag is actually negligible.
Chris