Use INKEY$ to check for the key being pressed. CHR$(0) + "H" is up, CHR$(0) + "P" is down.
If the file is relatively small you can load the whole thing into a string array and just change the start index when up/down is pressed. Then display ~20 lines from the start index on the screen. (Don't forget bounds checking)
If the file is large, then you will have to use SEEK and only read in 20 lines at a time.