Well at least you're going about it the right way, and granted I don't have a clue how well versed you are with routers, port forwarding and the like. Here's one way you could approach this.
The first thing you are going to need is a computer that is NOT on the network blocked by your school, ie a friend at home, at work etc. (best with a dedicated internet connection unless you want to get into remote dial up and all that garbage.)
This computer will need some sort of routing/firewall service set up on it, for example shorewall makes a highly configurable easy to manage firewall package. It is free and open source, and available for most any flavor of linux. Make sure you can connect to this computer from your school. (ie ping, http, ftp etc.)
Once you have the computer and a firewall capable of routing packets/forwarding them then you need to open ports per battle.net 's instructions.
http://www.blizzard.com/support/?id=msi0445p
This should make your remote machine fully capable of connecting to bnet or hosting open games.
The next step will be to find a port or set of ports that is open from your school network to the rest of the world. You can try random port numbers until you find something open or you can just use known ports, ie port 80 (http), 23 (telnet), 22 (ssh). If you can browse the internet then port 80 is open, the only problem with using a port that is intended for something else is that the real service that is supposed to be running there will not be available. You shouldn't have to worry with this if you take a little time to find some open ports.
Once you find a suitable number of ports (you will probably need 1 for each port listed at battle.net 's support page) write them down, we are now going to re-associate which port does what on your remote machine.
Next we need to find out what our IP addresses are, since im assuming you are on a lan you will have an internal ip address (on your laptop, possibly like 192.168.0.3) and an external ip address (the schools internet connection) You can find the schools IP easily by going to somewhere like portforward.com or typing "what is my IP" into google.
If you are using shorewall (up to you to figure it out if you are going to use something else) you will need to make some entries into the shorewall configuration like this. Note this guide has not been tested it is only a general stab at how to do it.
***items in braces <> are to be filled in by you with the right values.
*** Legend ***
<schoolsIP> external IP address of the school
<remoteIP> external IP address of the remote computer
<port1a> known open port on your school's network
<port1> the port that <port1a> is masquarding as, ie we know port 2283 is open, so we say port1a = 2283 and port1 = 6612
in /etc/shorewall/rules
DNAT net:<schoolsIP> net:<bnetIP> <port1a> <port1>
--This should forward any request originating from your school on <port1a> to battle.net, good luck figuring out which IP to use for <bnetIP>, you will probably need a port sniffer or maybe someone here knows.
DNAT net net:<schoolIP> <port1> <port1a>
--This *SHOULD* now redirect any requests from bnet on <port1> back to your <schoolIP> on the known open port <port1a>. You will need to repeat this entry for each port that you wish to redirect. (per whatever bnet says, I think the only ports I have open are 4000 and 6112 for diablo)
Now in theory we have communication from the school to the correct ports on battle.net, our only problem lies in getting diablo to use the open ports instead of the ones it defaults to.
Unless you have access to the school's firewall (which if you did you could just open the ports and not go through all this trouble) its going to be tricky to get this working.
The easiest solution is probably to install some sort of packet filtering software on your laptop that you can easily turn on and off, this way you can intercept the packets coming in on <port1a>,<port2a> and just masqurade them back into <port1>,<port2> etc. Another alternative would be writing a small application to listen on <port1a> and forward it to <port1> on the local machine, but this might be outside your scope of knowledge. (no offense I just dont know you)
Known issues that I can think of right off hand.
1) Any port you use that is used by some other service (ie port 80) is going to make that service unavailble to you on the laptop and whoever is using the remote machine, (without some careful exclusions in the firewall settings).
2) Battle.net uses multiple servers to run games, this might get you connected to bnet but not let you create/join all games, this will take some time and some unrestricted access to bnet where you can find a big list of server ip's.. (or you could check the dclone post I think I saw a list there)
3) This writeup is 100% untested, it is just a theory and will most likely take some tweaking to get working.
I probably missed something, and feel free to add to this if anyone else things of anything but hey I gave it a shot!
-dNiym