Bei einem Multitasking-Betriebsystem wie Windows (das gilt genauso für Linux und etliche andere) wäre es ein Wunder, wenn das so einfach funktionieren würde, was du vor hast. Das Betriebssystem unterbricht ja immer wieder die Abarbeitung deines Anwenderprogrammes um sich zwischendurch um andere Tasks zu kümmern. ("Multitasking"). Für zeitkritischen Anwendungen wie das Abtasten von schnellen Impulsfolgen bräuchtest du eigentlich ein Echtzeit-Betriebssystem. Mit der guten alten MS-DOSe hättest du ganz gute Chancen gehabt, das es geklappt hätte.

Ich würde an deiner Stelle den Sensor an einen Mikrocontroller anschließen, der die Codes empfängt und zwischenspeichert. Die Übertragung von µC zum PC würde ich lieber über die COM-Schnittstelle machen. Da hast du üblicherweise schon ein FIFO drin, das einige Bytes puffern kann. Wenn das nicht reicht, hast du zusätzlich noch die Möglichkeit, über die Modemsteuerleitungen den Datenfluss zwischen µC und PC zu bremsen.

Wenn du den µC lieber an die Centronics anschließen willst, dann solltest du am besten mit einem Quittungsbetrieb zwischen µC und PC arbeiten, z.B. jedes gesendete Bit vom PC quittieren lassen bevor das nächste gesendet wird