Claro, você pode usar alguns IF NOT condicionais simples e informá-lo se a primeira variável FOR /L de %%a é igual ao valor da segunda variável FOR /L de %%b para não echo na saída arquivo.
Eu também coloquei o redirecionamento >> append na variável echo do %X% dentro do loop para garantir que ele seja anexado para corrigir os valores dos loops como você esperava. Além disso, coloco a lógica inicial em cima de IF EXIST newfile.txt DEL /Q /F newfile.txt , então, se ela existir antes da execução, ela é excluída primeiro.
@ECHO ON
setlocal enabledelayedexpansion
IF EXIST newfile.txt DEL /Q /F newfile.txt
for /L %%a in (0 1 10) do (
for /L %%b in (1 1 10) do (
IF NOT %%a==%%b set X=%%a%%b
echo. !X! >>newfile.txt
))