Here’s an easy way to look at it: One Mongrel server equals one instance of fastcgi.
Say your shared host allocates 2 fastcgi servers (dispatchers) for your application. That’d be like having two mongrel instances running. Roughly the same memory footprint.
Mongrel instances can be clustered using the awesome mongrel_cluster gem… you choose how many instances you need along with the starting port and it will start / stop the various processes. At that point it’s just a matter of forwading requests from Apache to Mongrel.
I don’t know how many shared hosts go the mongrel route. A few do though.