Practically any traffic-shaping tutorial should be able to teach you how to achieve your goal.
CBQ, HFSC, and FAIRQ all are capable of "link-sharing" or "bandwidth borrowing", meaning that when there's unused bandwidth it can be used by anything.
I think you primary problem is that you don't understand how download & upload traffic-shaping are different. Read this: http://www.linksysinfo.org/index.php?threads/qos-tutorial.68795/
Also, TCP ACK packets need to be guaranteed the minimum bit-rate required achieve maximum download speed. To estimate this bitrate you could initiate a max-speed download and see what your ACK queue's bitrate is.
Actually, the following observation might be your biggest problem…
You also seem to have a very strange problem that may be unfixable… I calculated that I needed transmit ~300kbit of ACKs to achieve a 12Mbit download and for you to achieve 100mbit download you would need 2500kbit of ACK packets, which is more than your upload is capable of. This means that while you are downloading, you probably will not even have any upload bandwidth free for any other vital services… that is not good at all.
Edit: To clarify, with your current 100Mbit/2Mbit connection, it's likely that even with an optimal traffic-shaping setup that your download will suffer when prioritized traffic (VOIP, RDP, etc) is being transmitted since it will decrease your already borderline ACK bitrate.