PuTTY includes plink, a command-line ssh client. I don't know if Net::SSH could be persuaded to use plink instead of ssh. There is a global variable that holds the command name. I would worry about some of process control is different enough that IPC::Open2 doesn't work right.
$Net::SSH::ssh = "c:\Program Files\PuTTY\plink";