How to query large sets of data using server resources to the max
there is no such hint, if your sessions are the only workload, server resources will be distributed equally among them
It could definitely help. Perhaps 1 session per core. Make sure that clustered index built on ID, so data retrieval can be distributed by chunks using that column and query table with the most efficient operator for such scenario: clustered index seek (with range scan)
Consider to increase TCP packet size: Performance Best Practice: Network Packet Size
Antivirus/Network Security agents on a database server. Some companies have it installed by default. Such middle-ware can hit both IO and network layers, therefore consider to add appropriate exception rules or even disable them during the export.