Если я понял ваш вопрос, вам, вероятно, понадобится разбиение на страницы: загрузка и отображение данных кусками. NHibernate поддерживает это с ICreteria и комбинацией SetFirstResult / SetMaxResults:
IList<MyObject> GetPageOfMyObjects(int pageSize, int zeroBasedPageNumber) {
return Session.CreateCriteria(typeof (MyObject))
.SetFirstResult(pageSize*(pageNumber))
.SetMaxResults(pageSize)
.List<MyObject>();
}