SetNumberOfInputBuffers sets the number of reports the HID driver can store. If your application can't read the reports fast enough, the buffer will still overflow, just not as quickly.
ReadFile returns as many reports as are available and will fit in the buffer passed to it. So for example, if the report is 8 bytes + report ID, the ReadFile buffer is 90 bytes, and the HID driver has stored 10 reports, ReadFile will return all ten reports at once.
It's also possible that some other issue is causing the dropped reports.
Jan