I'm not aware of any commercial solutions, but a "transparent firewall" i.e: OpenBSD+pf+bridge(4) is viable.
In this scenario, you would have a system with 2 interfaces... 1 port connecting to your LAN, the other to your router or modem.
There is a post, somewhere in the OpenBSD section about a bandwidth monitoring... ephemera has a little daemon that might help you out, but, there are also similar things in the port tree..
As for doing this with other OS's, I can't help you... wouldn't know where to begin.