Cipher,
How much programming knowledge do you have, and how much design you have done already? If you don't have much time left, I suggest you scale down your plans for the download manager, and make something simple, like gwget. Gwget is a front end for wget.
Important point is that you must be able to finish the project in time. Just GUI programming with GTK will take you a lot of time. You should use Glade to make your GUI, but then you will need to handle automake/autoconf stuff correctly. If you haven't already programmed in GTK, you will need some time to understand how it works.
Don't try multithreading unless you have prior experience in it. Multithreaded programming is very hard and can have all sort of weird and difficult to find bugs. Instead, for each download, start a seperate process using fork() and execv() and outsource the job to wget, and forget about it. If you want to be fancy you can open a pipe to wget's stdout and parse the wget output and show a progress bar in your gui. Again, this takes more work.
So my thinking is that you are undertaking a project you may not be able to finish in time. So instead, scale it down, simplify the GUI, keep only the essential functions and code that instead. Maybe you can ditch the GUI idea completely and code a single threaded command line utility, or maybe you can ditch coding the downloader yourself and outsource the job to wget. You will need to make some compromises to be able to finish this thing in time.
Hope that helps.
Pallav