It would stand to reason that your hardware is lacking memory. What kind of data are you retrieving? How large are the records? I have retrieved hundreds of thousands of records in past projects and not encountered this kind of problem.
Multithreading is unlikely to solve this. Splitting a process up into multi threads isn't going to reduce the memory required by the process as a whole. It just reduces the memory demand of each single thread. In fact, it would probably INCREASE the memory demands because you are introducing thread management to the process.
-
Peter