Ok, this is NOT a simple procedure and most likly it's just gonna cost more money than it's worth. What the technical term for this is "bonding". In essance what you are doing is send one packet out one line, and the other out the other. Then when packet's come in they need to be reorganized into the correst order. This is where things get sticky because I'm not sure if you have to have the same company for ISP's (example, when I did this I used two DSL modems from the same company, nearly the same IP and for sure on the same subnet).
The way that I did this is by using a Cisco 3600 series router with two cisco DSL modems (*hint* not really cheap). The modems converterd the DSL lines into direct IP's over a high bandwith serial link to the router. The router then took over the task of bonding the lines. I know at points we were having so much trouble with it that we only bonded the lines outgoing, when things came in (uploads) they would only go over one of the cable connections.
This is just an example of how I did it. I know there is a way to do it with the built in network features in linux (as stated above) however I don't know how user friendly it would be.
I plan on doing this again next year at my house using two cable modems, but I'm not sure how successful I'm going to be.
Good luck, I can try to help if you want.
BEN