consegui resolver, segue:
WITH UltimasMovimentacoes AS (
SELECT
idprocessojudicial,
DataMovimentacao,
DescricaoDetalhada,
ROW_NUMBER() OVER (PARTITION BY idprocessojudicial ORDER BY DataMovimentacao DESC) AS RowNum
FROM
ProcessoJudicialMovimentacao
)
SELECT
idprocessojudicial,
MAX(CASE WHEN RowNum = 1 THEN CONVERT(VARCHAR(MAX),DataMovimentacao,103) + ' - ' + CONVERT(VARCHAR(MAX),DescricaoDetalhada) END) AS UltimaMovimentacao,
MAX(CASE WHEN RowNum = 2 THEN CONVERT(VARCHAR(MAX),DataMovimentacao,103) + ' - ' + CONVERT(VARCHAR(MAX),DescricaoDetalhada) END) AS PenultimaMovimentacao,
MAX(CASE WHEN RowNum = 3 THEN CONVERT(VARCHAR(MAX),DataMovimentacao,103) + ' - ' + CONVERT(VARCHAR(MAX),DescricaoDetalhada) END) AS AntepenultimaMovimentacao
FROM
UltimasMovimentacoes
WHERE
RowNum <= 3
GROUP BY idprocessojudicial;