Sorry, but I don't think that's a good idea. Let's say you need 100 ms to check whether a port is open or not. In the worct case, you need about 6500s, which makes nearly 2 hours.
I find it very strange that a firewall blocks port 80 (well, maybe to prevent surfing at work
), but, however, there must be a way to find out which ports are open. Ask your admin about it.
If there's no possibility to find out which ports are opened, then your proposal is the only possibility. By using several threads, you can drastically reduce the amount of needed time, but it's still very slow.