Есть, к примеру, утилита top. Она на каждой итерации выводит не новые 24 строки, а стирает старые и вместо них пишет новые. Таким образом создается иллюзия перерисовки.
У меня получилось посылом на stdout '\b' стереть только текущую строку - дальше не шло.
Как, собственно, передвинуть курсор на несколько строк вверх и переписать то, что написал?