You might struggle to do it on one piece of network hardware. Two wireless cards (or a wireless and an ethernet, or two ethernet if such motherboards still exist...) is a different matter.
This also ignores the option to merge the internet connections, or use a router in the traditional sense of the term* to create said connection, and maybe direct one program's internal network comms to use a given proxy or something. You then set it up such that the proxy goes to the network you want.
*bust open your 90s network comms book and after the discussion of the difference between a hub and a switch you will have the one for router which acts to join networks.
Going further you can also do some fairly creative things with virtual machines and networks (looks far more complex than it is and you certainly don't need to know all this to do what you want here
https://www.virtualbox.org/manual/ch06.html ), though in reality it would probably be a way to do a expensive in terms of resources (you are running a VM after all) proxy for when a program only uses system settings or does not even allow the option for proxy settings. That said it is not like you need oodles of RAM and CPU to run a light linux distro for high bandwidth downloads, whether you might get it down to comparable to a greedy Java torrent client I do not know but it should be within reason or indeed noise for a modern semi gaming grade machine like a lot around here run.
Option 2. One as a downlink and one as an uplink. Ignoring things like network/nic teaming (and because everybody likes to have their own names then LBFO in some Microsoft circles) I tend to only see this for things like satellite internet where you might have dialup for the upload but satellite for the download.