A high-speed interrupt endpoint can do this.
If you don't want to provide a host driver, take a look at HID:
www.lvr.com/hidpage.htmor WinUSB:
http://www.lvr.com/winusb.htmSome things that can affect throughput are the size of the data packets and the length of the transfer (whether each transfer is a single byte or multiple bytes).
Just about all general-purpose high-speed controllers support interrupt transfers. Look for one with example code:
http://www.lvr.com/usbchips.htmIf you have control over how busy the bus is with other traffic, you may be able to use bulk transfers. In that case, the easiest path may be the FT232H or similar.
Jan