TCP is going to group/batch/split things as it see fit (its trying to optimize the connection), see this answer by Glyph or this more detailed How can I force a socket to send the data in its buffer article
If you really want to do this, and mind you your trying to force TCP to do something it doesn't want, then Jean-Paul's answer is pointing that the fact that you might be able to get a char-by-char flush on TCP if you write one char at a time with a few second wait in-between each char.