Okay, using multiple threads to take advantage of the multiple cores on the server will not help speed up your download since that purely depends on your bandwidth. But if your idea is to make parallel connections to a server and download multiple parts of the same file, then that may help improve the speed if the server restricts download speeds on a single connection. This trick is used by several HTTP and FTP downloading tools to work around speed restrictions enforced by download servers.
But if that's your game plan, you will not be using the same socket across multiple threads since that would be pointless. Instead you'd have each thread use its own socket to fetch a specific part of the file to download. And then you'd have one main thread that'd manage these multiple downloads and sync up the downloaded parts into one single file. In fact depending on your scenario, you may even begin processing the data from the multiple downloads (although I can't say how useful that will be for you since I don't really know anything about your app).
[Edit]
~~~~~~~~
Assuming you are using HTTP to download a file as multiple parts, you need to use a Range header. See
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35[
^] for more info on that. Of course if your server uses a custom protocol then you need to use a different approach that will work with that protocol.