Not sure why a library is needed.
Take a look at the FtpWebRequest class.
I would use a Parallel.For loop with synchronous loading - this way you can configure the number of parallel downloads depending on the capabilities of the ftp server.
source
share