If the records don't change very much then there probably is a performance penalty incurred by requerying on every page; however, if there are many records (as would be expected if pagination is necessary) then the amount of session data stored can be large (and if the data is volatile, the cached copy in the session may go stale while it's being viewed ... then again, this may be desirable).
A tradeoff is that disk access time is extremely slow compared with core access (and any decent DBMS would store active data in core); but database communication is complex and time-consuming compared with deserialising a sessioned object.
All this depends on your precise circumstances; one rule of thumb though is that storage is cheap but time is short.