GetTickCount te retourne le nombre de millisecondes depuis le démarrage du PC.
Donc ton problème est plus dans le DoEvents qui libère le temps pour les autres processus, dans la pratique, ce délai peut être de 10 à 15ms (constaté sur une application pro), donc il ne faut pas faire de DoEvents et ce sera précis à la Milliseconde.