Dari pengalaman saya, paging selalu lebih cepat jika diserahkan ke database. Lagi pula, database dibangun untuk melakukan kueri dan memanipulasi sejumlah besar data.
Jika Anda mengembalikan data dalam jumlah besar dalam .NET dan "mencache"nya dalam sesi, Anda akan segera kehabisan memori di server Anda.