From looking at the code in Net::Ping, it should be possible to modify it or write a new module that does multiple simultaneous ICMP pings. Net::Ping sends an ICMP packet, and then waits with a select loop for the response. The new module would separate the sending and waiting. It would also have to keep track of outstanding packets.
There is a program, fping, that does simultaneous pings to multiple hosts. It is available for Unix but not for Windows.