Nobody did such things on DOS!
Instead, people would go directly to video card RAM, figure out the address of text screen buffer, depending on card type, and would write directly to it. Don't even play with the idea of using console -- it is not designed for such things. Now, the buffer of color mode text screen consists of pair of bytes: one byte is the character to output, another one is background and foreground color, one half-byte for foreground, another half-byte for background, so you have 16 colors for foreground and 16 for background. I hope I remember this correctly.
Therefore, you have an array of 16-bit words which you can write in arbitrary order. The horizontal line is usually 80 characters, so you can address the array like an array of rank 2. Changing any byte in the array changes output in any position on screen.
This is easy enough. We even used to draw all kind of pictures on screen, using pseudo-graphics characters. You also can modify fonts for text mode which are also stored in the video card RAM. This way, you can draw a very special graphics which looks almost like graphical (pixel-level) mode.
Finally, there is one more trick: reloading font for some characters dynamically. It runs in a very smooth way, so there were a popular programs addressing a mouse cursor on a pixel level (in a pure text mode!). It was done via reading of the buffer characters around mouse location, modifying character bytes and bitmap of the font for these characters dynamically.
What else? Yes, you can get a hardware interrupt triggered by the video card at the moment of diagonal motion of the electron beam when the monitor moves the beam from the position of button right pixel to the position of top left one. People install interrupt handler on this IRQ to trigger changes in the video card buffer. This is an analog of "double buffering": instead of costly double buffering, all changes were written to the card when the image update was paused to the back move of the electron beam.
[EDIT]
For rudimentary reference material, use this:
http://en.wikipedia.org/wiki/VGA_compatible_text_mode[
^]. When you learn terminology but miss some information, search fore more detail in the Web using basic terms and concepts.
And here is the reference for keyboard interrupt usage:
http://webpages.charter.net/danrollins/techhelp/0106.HTM[
^]. Look at the whole site, it looks promising.
—SA