Pues la forma más directa es cargar en memoria el archivo, leyendo linea por linea y creando una lista enlazada en "reversa". Luego mostrarlas en pantalla siguiendo el orden de la lista.
Nota: Como es un archivo de texto se leen secuencialmente y se pueden leer linea por linea detectando los caracteres de saltos de linea.
La función fseek no te posicionará en el archivo por lineas, sino por bytes. Y si quieres saber donde están los saltos de linea de todas formas tendrás que leer todo el archivo.
Ahora o bien lees varias veces el archivo por partes para ahorrar memoria y cargar en memoria sólo una linea a la vez (por eso de mostrar el archivo en forma invertida), o lees todo el archivo de texto y lo almacenas en memoria. Lo interesante sería un algoritmo que te permita hacer esto sin tener que poner todo el archivo en memoria o tener que leer varias veces el archivo.
