Ah, USB - das erklärt einiges.
USB ist kein "direkter" Bus. Es ist ein reiner Master-Slave-Bus. Das heißt: Jedwede Transaktion, die über USB läuft, muß vom Master angestoßen werden. Jede, ohne Ausnahme. Das heißt, selbst wenn deine Webcam ein Bild fertig aufgenommen hat, muß der Master erst fragen: "Hast du was für mich ?".
Diese Master-Abfragen finden prinzipbedingt alle 100ms statt, IIRC. Dein Thread trifft nun manchmal genau den richtigen Zeitpunkt - manchmal auch nicht. So kommen die seltsamen Zeitunterschiede zustande. Daran ist nichts zu rütteln, auch höchstmögliche Thread-Prios werden nichts helfen.
Die interne Uhr dann für Laufzeitermittlungen zu verwenden, ist auch so eine Sache... Ich persönlich benutze aus der JCL die TJCLCounter - die arbeiten Nanosekunden-Genau (RDTSC usw).
_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.