How can I run Bitcoin-QT client behind a restrictive firewall using a putty tunnel?
The easiest way to make this work would be to install cygwin on your windows machine, specifically ssh client package.

Then from a cygwin shell, run ssh -D 8080 user@linuxHost.

Now you can point the qt client to localhost:8080 as the socks proxy.