<p>For example, I want to populate a gridview control in an ASP.NET web page with only the data necessary for the # of rows displayed. How can NHibernate support this?</p>

How about using Linq to NHibernate as discussed in
this blog post
by Ayende?
Code Sample:
```
```
(from c in nwnd.Customers select c.CustomerID)
        .Skip(10).Take(10).ToList();
```
```
And here is a detailed post by the NHibernate team blog on
Data Access With NHibernate
including implementing paging.