Asynchron heißt eben im Thread, damit dein Programm derweil noch normal reagiert...
Zudem sind synchron wie im Beispiel keine multiplen Downloads möglich.
Die Funktionalität des Tools ist so allerdings erst einmal schlechter als jeder existierende Downloadmanager für diesen Zweck.