со стороны контроллера сделать максимальную буферизацию а со стороны PC использовать "асинхронное" (без ожидания получения данных) чтение при помощи CyAPI. Там получается так- запросами на чтение из устройства создаете очередь, а потом в том же порядке забираете данные
У меня вроде поток (~6.5 Mb) шел без потерь, но не ручаюсь за достоверность