Existem várias suposições falsas na sua pergunta, então deixe-me esclarecer aqui:
- O multithread é possível até mesmo em CPUs single-core. A execução apenas é dividida no tempo para que você tenha 1 thread ativo em qualquer momento, mas a execução geral dos threads é paralela.
- Multithreading não é equivalente a acelerar. Se ingenuamente projetado, o aplicativo multithreading é sempre mais lento que o aplicativo single-threaded por dezenas ou até centenas de vezes.
- O download de redes externas em 99% dos casos não depende de multithreading. Pode valer a pena conferir downloads HTTP de vários intervalos, como foi implementado em aplicativos como NetAnts, ReGet e outros. Era do modem. No entanto, não há garantia de que o download de vários intervalos seja mais rápido do que o normal, devido a várias políticas de rede e servidores envolvidos.
Então, afinal de contas. Você definitivamente precisa coletar métricas no seu aplicativo: o que é a operação mais lenta? E, em seguida, reprojetá-lo para obter mais velocidade.