If you aren't using VISA (e.g., using the pre-LV 7.0 "serpdrv" VIs), then I suggest using VISA to improve performance.
If you are using VISA, you might also consider right clicking on your VISA Read function and selecting "Do I/O Synchronously". This optimizes for your situation--where you are reading a small piece of data at a high rate of speed and you know that the data will be there.
On the other hand, doing I/O asynchronously is preferred if you are reading larger blocks, or you don't know when your data will arrive, or you are using slow baud rates.
I hope this helps.