Z mojego doświadczenia wynika, że stronicowanie jest zawsze szybsze, jeśli zostanie pozostawione w bazie danych. W końcu baza danych jest budowana do wyszukiwania i manipulowania ogromnymi ilościami danych.
Jeśli zwrócisz duże ilości danych w .NET i "buforujesz" je w sesji, szybko zabraknie pamięci na twoim serwerze.