I think windows scheduler ticks at 10ms yes.
Without knowing every detail of your requirements it is hard to designing a comms system to fit, but I think you have got several good leads already.
Quick question.. have you set your comms thread priority to Realtime ?
Make the comms thread high priority (priority realtime). This should cut the task switch in time to it's absolute minimum, but bear in mind that if it does not yield it's timeslice it could freeze up your PC well and good.
Do as little else as possible in the comms thread.
Use ample buffering. The size of the windows receive buffer can be adjusted with a function call. (can't remember the name sorry don't have Win32.hlp on this PC)
It should be possible to send a continuous stream of data from your FPGA and have windows receive it all at 115200 baud, set up the read (call read first), then send the request for data to the FPGA. It might help to use a different TX thread for this, or you would have to use overlapped I/O.
Windows will look after things from then, you just need to check for framing or overrun errors at the end.
Thinking aloud here, the windows buffer should keep buffering characters for you while you setup the next read command. Come to think of it.. the windows comms buffer probably does not need to be huge, just big enough to buffer whatever comes in while your task is faffing about setting up reads etc..