If Amazon doesn't offer an asynchronous API, you'll need to implement one yourself. You already have a thread for each download, just have your download thread notify your main thread when the download is done.
TPL can help you do that automatically - create a Task that downloads a file, and await
on it.