It sounds to me like your problem is with the Arduino IDE's "Serial Monitor", rather than with the Arduino itself.
If you use a more traditional terminal emulator to talk to your arduino (which appears as a normal serial port, essentially), the arduino will receive each character as it is typed...