As per my understanding, you will see that scenario as long as you use BULK transfers.
The fact about these BULK transfers is that transfers are bursty in nature and not have guaranteed bandwidth.
Whatever you do with BULK transfers, you may reduce the occurrence of such scenarios but it is not avoidable.
You may want to go and use ISO or INT transfers based on you application requirement.
And also, if you are playing with the buffer where you store the data then it is better to Queue the requests and use ping-pong buffers to eliminate any occurrence of that scenario. But I think if you are using ISO then automatically it will be taken care of on the PC side.