Поиск по маске, а дальше все зависит от того, что ты понимаешь под первой строчкой.
	Код:
	procedure TForm1.Delete1stLine(APath : String); // APath - стартовый путь
var
  iFound : Integer;
  F : TSearhcRec;
  List : TStringList;
begin
  APAth := IncludeTrailingPathDelimiter(APath); // на всякий случай
  iFound := FindFirst(IncludeTrailingPathDelimiter(APath) + '*.*',faAnyFile,F);
  While iFound = 0 Do
    Begin
       If (F.Attr And faDirectory) <> 0
         Then
           Begin
             // Папка
             If (F.Name <> '.') And (F.Name <> '..') 
               Then Delete1stLine(APath + F.Name); // Если по подпапка ненадо, то не вызывать
           End
         Else
           Begin
              // Файл
              If MatchesMask(F.Name,'*.txt') Then // здесь указать маску файла
                Begin
                  List := TStringList.Create;
                  List.LoadFromFile(APath + F.Name);
                  List.Delete(0);
                  List.SaveTofile(APath + F.Name);
                  List.Free;
                End;
           Endl
    End;
end; 
 
Удаляет первую физическую строку из файлов *.txt с проходом по подкаталогам.