Dmitry, this article is a bit dated, but back in 2007 I wrote about this topic and presented an approach for paging result sets.
Now...at the time, SQL Server didn't have an OFFSET/FETCH like it does in 2012 - but I presented an approach using an ASP.NET GridView and a stored proc that received an offset index and a count of # of rows to fetch. I have a full example, if you want to read through it.
http://www.codemag.com/Article/0703041Don't know if it will solve your problems...but if you're looking to only show a certain # of rows, and allow someone to jump forward or backward (N) number of rows at a time based on an order, you might want to give it a read.