Is it possible? Yes. Is it practical? Not really.
What you're describing is called channel bonding. It requires software on your end, and similar software on a server elsewhere on the Internet. Then you run what for all practical purposes is a VPN to that server. Except the VPN software is configured to use the multiple network connections together for increased bandwidth and reliability. The server's IP address becomes your computer's Internet IP address. Each network adapter having a different IP address doesn't matter because the VPN traffic is layered on top of them.
The server requirement makes this impractical for the vast majority of people. Usually it's set up by ISPs when, say, you request a 50 Mbps Internet connection and the fastest they can provide is 20 Mbps over a single DSL line. They'll install 3 DSL lines, then bond them together to get you a max 60 Mbps. It's also used internally within a LAN, if you want two devices to communicate faster than your LAN's speed (e.g. your computer and server could communicate via two ethernet devices each at 2 Gbps over a Gigabit network). Even if you do set it up yourself, most people set it up on a computer acting as a router so that the increased bandwidth can be shared with multiple devices, not just a single computer.
The software to do this is free, but if you don't know much about networking it's going to be indecipherable to you. But if you do set it up, and you have some sort of server you're paying for where you're free to configure its network as you see fit, you could conceivably set it up so you could connect your laptop via ethernet, WiFi, and a USB WiFi device to different networks, and bond the connections together to get a faster connection to your server. (I'm glossing over some of the pitfalls, like load balancing and timeouts due to the channels having different speeds.)
https://www.kernel.org/doc/Documentation/networking/bonding.txt