OK, I knew there was some way of controlling the display of characters to a console, and the answer is via tput
There are (by the looks of it) many fancy things you can do with tput - but the following four should be enough for your application:
tput lines # Returns the number of lines on the current console
tput cols # Returns the number of columns (i.e. characters per line) on the current console
tput cup $row $col # Places the cursor at line $row, column $col (the top line is 0, and the bottom is $(tput lines) - 1).
tput el # Deletes from cursor to end of line
These are really funky commands, and reflect the current window, not just the underlying terminal program - try issuing 'tput cols', resizing your window and issuing it again... now that's impressive. Anyway, you can read in the row and columns at the start of your script, and then before issuing the echo command, use 'tput cup x y' dollowed by 'tput el' to clear your old text, then write the new text on the same line. For sanity checks in case someone resizes the window, you may want to update your rows and columns count periodically, depending on how important it is to have them up-to-date.
At this point I'd like to say that while I think these commands will work fine, I've only just come across the command and haven't looked into the weird and wacky errors that may arise from strange configurations and unexpected use. I'd definitely recommend you have a look around for tput HOWTOs and learn its abilities and limitations for yourself.
It's pretty tasty, though.
: oh, and while man tput isn't that information, man 5 terminfo gives you a long
list of capabilities that you can get/set/otherwise exploit with tput. Some of these are more device-dependent than others, YMMV.