I used to do it, I recall that it wasn't
that much of a pain to setup (like I spent a half day getting everything working and didn't worry about it again), but it was enough of a hassle moving code between my laptop and the production Linux servers that I went and learned vi, started developing over SSH, and eventually just bought VMWare and loaded up a Linux image.
The shebang line isn't really a problem - Windows servers just ignore it. IIRC, the Windows PHP and Perl Apache modules go by the file extension to determine which module to execute. This is probably in the configuration instructions somewhere...I just followed a tutorial on the web.
The parts that are really painful are:
1.) You have to be really careful keeping your code platform-independent - which is good practice anyhow, but can be tricky. Paths are the obvious problem - I was always forgetting and hardcoding backslashes instead of using whatever the PHP platform-independent equivalent is. Since the directory structures are different, you'll need to keep every path in a config file and reference them indirectly - again, good coding practice, but easy to forget.
2.) Some functions don't work the same between OSes - anything with symlinks, permissions, umask, or pipes is going to behave differently. IIRC most of these functions had sensible defaults (i.e. do nothing) and didn't fail outright, but keep this in mind.
3.) Calling out to external programs is a real pain. I think this is what made me finally switch - the app grew so that it needed to call out to UNIX-only command-line apps written in C, and I didn't feel like porting them to Visual C++.
That's all based off memory - it's been about 4-5 years since I developed on Windows, and 3 years or so since I last worked with PHP. Basically the upshot is that it's possible, but there were enough corner cases that for intensive work, I found it was better just to bite the bullet and get VMWare.