You need to change the spring rate, that is the only way this can be done if you know what your doing. I am going to do my one on the ST when I get it back on the road.
The spinning magnet creates 'Eddy' currents in the non spinning piece which acts against the force of the magnet, moving the needle.
There are two things you need to get right for it to work correctly, the start spring pre-tension i.e. the load on the spring at 0mph and the return spring rate. If you have to much spring rate it will tend to under read, too little and it will tend to over read, the start spring pre-tension will be where it begins to read and is an adjustable fixed constant.
I.e. the speedo could read 5mph+5% over, you change the pre-tension to cancel out the 5mph bit and then the spring rate to cancel out the % bit.
I should also add, you should do this with brand new tyres of whatever it is your going to use, and also temperature will also affect how it reads since this will change the springs dynamics.
Ed