Eu faria algo assim:
;WITH x
AS (SELECT *,
Row_number()
OVER(
partition BY employeeid
ORDER BY datestart) rn
FROM employeehistory)
SELECT *
FROM x x1
LEFT OUTER JOIN x x2
ON x1.rn = x2.rn + 1
Ou talvez seja x2.rn - 1. Você terá que ver. De qualquer forma, você entendeu a ideia. Depois de juntar a tabela, você pode filtrar, agrupar, classificar etc. para obter o que precisa.