En realidad el campo por el que hay que agrupar es FECHA.
Código:
select fecha, count(lineas.linea) as num_lineas
(select top 1 linea from lineas where lineas.codigo = cabecera.codigo order by linea),
from cabeceras
inner join lineas on lineas.codigo = cabecera.codigo
group by fecha
Saludos.