Through a single connection only one transfer is possible.
If you want simultaneous downloads, you'll have to implement a connection pool yourself I think.
An edt person could probably provide more info on that.
I have been thinking about that myself, but not implemented it yet as time constraints don't permit.
It seems to me the best way to go about it is to create a array of x connection instances and their availability (x = configurable, say 5)
Simultaneously, create a job queue.
Whenever the available connections >0 take a job from the queue and give it to an available queue.
The reason why I'm not going there yet is that currently, I don't even have enough ports available for Winsock to use one connection at full speed.
Because more simultaneous connections, means more used ports on your machine …
So you might consider looking in to that first, before you start this all.
Please keep me updated.