In general, as many as the USB protocol can address on one bus (which is 127). I do recall that the Linux kernel needed a special option selected if one wanted to use more than 8 devices of the same type (printer, mass storage, HID) – just saying that Windows may have a similar software limit.
However, you may consider one thing... USB uses frames of 1 ms for a transfer. Most keyboards are low-speed devices which means they operate at a lower rate (8 times slower). If you use multiple keyboards or other devices on one bus, the delays may be significant.
Depending on what computer you are using, you may have multiple separate buses, or one bus with a built-in hub. In the latter case you may experience delays of tens of milliseconds.
To back this up with an example: Here's a screenshot of Wireshark on my USB. I have a USB mouse connected and I was moving it around frantically to record as much traffic as possible. I've highlighted two consecutive transactions over the bus. As you can see by the time stamps on those transactions, they differ by 8 ms. That means my mouse is a low-speed device.