Sua consulta interna é uma subconsulta correlacionada, mas não pode ver table1. Esta é uma restrição no MySQL - veja Manual do MySQL - D. 3. Restrições de subconsultas . Mais ou menos na metade do caminho diz:
Embora a subconsulta faça parte de uma expressão LEFT JOIN, ela faz parte da cláusula FROM.
Esta reformulação pode fazer o trabalho para você:
SELECT table1.id,
(SELECT COUNT(*)
FROM table2
WHERE table2.lt > table1.lt
AND table2.rt < table1.rt) AS cnt
FROM table1;