As I understand it you need to have a host on the inside initiate the connection back to you. Otherwise you would need to be able to exploit the firewall between the two host.
You could, for example, have a remote host inside the firewall run a script that creates a shell bound to a port. Then have another script that makes an outbound connection on an allowed outbound port, like http/80 to your machine. Your machine listens on port 80 and pipes that port to an other on your machine which you can connect to.
I quickly found the following it's about using netcat and telnet to reverse shell.
onlamp.com/pub/a/onlamp/2003/05/29/netcat.html
It's not the best tutorial I have ever read on it but should help you figure out what to search for next.


)