Per contare tutte le righe bisogna
contare i caratteri di nuova linea(Chr(13)+Chr(10)).

Nonostante tutto, con un processore decente si risolve tutto
in poco tempo.
Esempio:

codice:
function contalinee(NomeFile as string) as long
dim Pos as long,File as string,Res as long

'Inserisce il contenuto del file in una variabile
open nomefile for binary as #1
get #1,1,File
close #1

pos=1
'In C sarebbe tutto + semplice :quipy: 
prossimo:
Res=Instr(Pos,File,vbnewline)
if Res=0 then File="":exit sub else contalinee=contalinee + 1:Pos=Res+1
goto prossimo
end function
Non l'ho testato... spero ke vada...

Consuma anche abbastanza memoria

Ciauz!!!