Since web service calls can be executed concurrently, and technically processed in two threads this can be the cause. You can solve this by not retrieving any data, but store the data in an intermediate structure and do the processing at one central place.
I would not recommend a high-frequent scheduled event because that has drawbacks. You can start a 'executeMicroflowInBackground' at the end of the web service microflow (which is just a set of commits), because this is a sequential execution. One microflow may process 2 webservice requests and the second none, but that is no problem.