Você não pode sobrescrever arquivos de origem. E você não pode gerar automaticamente o novo nome devido à possível sobreposição. Mas você pode salvar o arquivo sem cabeçalho na pasta temporária e movê-lo pela fonte. Será algo como:
@echo off
for %%f in (*.txt) do (
more +3 "%%f" > "%TEMP%\%%f"
move /y "%TEMP%\%%f" "%%f" > nul
)
echo Done.
Ou o mesmo que um comando na linha de comando:
@for %f in (*.txt) do @(more +3 "%f" > "%TEMP%\%f" && move /y "%TEMP%\%f" "%f" > nul)