| Tohle pomocí TOP neuděláte - ten se aplikuje na celkový výstup. Vám pomůže ranking funkce ROW_NUMBER, která čísluje řádky a číslování dokáže rozdělit podle kritérií definovaných parametrem PARTITION BY. Definujete tedy podle čeho chcete řadit (například Id) a pak podle čeho chcete udělat skupiny, které se číslují samostatně (tedy ParentId předpokládám). Podle čísel řádků pak můžete filtrovat výsledek. Například: 
select *
	from (
		select
			 *,
			 ROW_NUMBER() OVER (PARTITION BY [ParentId] ORDER BY [Id] ASC) AS groupRowNumber -- cislovat radky od nejmensiho po nejvetsi [Id], samostatne cislovat skupiny podle [ParentId]
			FROM [Tabulka]
	) src
	where 
		groupRowNumber <= 2 -- maximalni pocet radku od kazde skupiny
	order by
		[ParentId], groupRowNumber
 |