POE looks interesting, and there's a Win32 version of it :) I've only scanned the docs but this might be a good way to go.
One thing I've noticed about perl ithreads is that they seem to take so *long* to initialise, at least on Win32, that threading little asynchronous functions whenever you need them can actually make the code run significantly slower :/ This is undoubtedly because perl copies the whole heap to the new thread, and I guess the performance problems with this is exactly why other threading APIs dont do it.