Here's a variation that may work
DECLARE @Index int = 5403
DECLARE @Count int = 1000
SELECT * FROM
(
SELECT TOP (@Index + @Count) *,
ROW_NUMBER() over (order by OrderColumn) as Sequence
FROM MyTable
ORDER BY MyTable.OrderColumn ASC
) as T
WHERE Sequence BETWEEN @Index and @Index + @Count - 1
ORDER BY OrderColumn
The derived table (nested query) shouldn't hurt performance. SQL Server will optimize for it. Although it will depend on the what the real query looks like.