В целом, столько, сколько протокол USB может адресовать на одной шине (это 127). Напомню, что ядру Linux требовалась специальная опция, выбранная для того, чтобы использовать более 8 устройств одного типа (принтер, запоминающее устройство, HID) - просто говорилось, что в Windows может быть аналогичное ограничение программного обеспечения.
Тем не менее, вы можете рассмотреть одну вещь ... USB использует кадры 1 мс для передачи. Большинство клавиатур являются низкоскоростными устройствами, что означает, что они работают с меньшей скоростью (в 8 раз медленнее). Если вы используете несколько клавиатур или других устройств на одной шине, задержки могут быть значительными.
В зависимости от того, какой компьютер вы используете, у вас может быть несколько отдельных шин или одна шина со встроенным концентратором. В последнем случае вы можете испытывать задержки в десятки миллисекунд.
Чтобы подкрепить это примером: вот скриншот Wireshark на моем USB. У меня подключена USB-мышь, и я отчаянно перемещал ее, чтобы записать как можно больше трафика. Я выделил две последовательные транзакции по шине. Как видно из отметок времени этих транзакций, они отличаются на 8 мс. Это означает, что моя мышь - низкоскоростное устройство.