This is totally doable, on either OS, although it can be done for free on linux.
The physical device issue is the easiest (keyboard, mice, monitors). New keyboard and mice work when they are plugged in in either OS. You can have as many as you want. For multiple monitors, all you need is multiple video cards. Windows and Linux will both utilize the new outputs, depending on your video driver. I myself have one video card with 6 outputs, the ATI HD5770. I'm using the fglrx driver, but the open source driver is also available (doesn't yet support video overlay for HD 5xxx cards and above).
The configuration option you are looking for in linux to separate these keyboard, mice, and monitors into separate controllable terminals is multiseat (NOT multihead). The problem with configuring multiseat in linux is that you need a video driver that's capable of KMS (Kernel Mode Setting). I know fglrx cannot do this, and I'm guessing that Nvidia's binary driver cannot as well. So, in short, use the open source driver!
Multiseat in Windows is possible through commercial products. There's one made by Microsoft called MultiPoint Server, which I believe is a whole new OS.