Apparently bonding can be at the ATM (or PTM) layer, or at the PPP layer. ATM bonding requires low-level support from the telco, whereas a competent communications provider can support ppp bonding without the telco's involvement.
The ppp daemon for linux has supported ppp bonding for years. It is called multilink PPP bonding or MLPPP. There is/was a famously good faq on ppp for Linux written by Bill Unruh which documented it.
Presumably if two modems in ethernet bridge mode are put together, feeding a Linux box via two separate ethernet cards, that would meet all the hardware requirements.
The Tomato firmware build apparently supports MLPPP, too. It's said to be quite difficult to configure (with issues of different latencies on the lines, etc), so driving the shebang from a Linux box might be easier, at least to begin with.
cheers, a