Say you've got a really fat but high latency link, and you want to run something over it that uses tcp
What it does is set up a proxy between two machines, each running showerhead; you connect to one, and the showerhead on the other end connects to whatever you told it to when you started it. All your data gets sent over some large (configurable) number tcp streams, and reassembled on the other end.
You can run a completely arbitrary number of connections over it; I've tested up to around 20 (netcatting huge files, mostly).
Showerhead project should be better documented and easier to use.