Following link contains example to implement paging in WPF Datagrid
http://www.eggheadcafe.com/tutorials/xaml/8a2ea78b-f1e3-45b4-93ef-32b2d802ae17/wpf-datagrid-custom-paging-and-sorting.aspx
http://social.msdn.microsoft.com/Forums/en/wpf/thread/7c897b14-4130-4ebc-9258-93298e4116eb
Also you can have Server Side Paging (CTE) and load only rows which you need to display in the page.
http://www.mssqltips.com/sqlservertip/1175/page-through-sql-server-results-with-the-rownumber-function/
http://www.codeproject.com/Articles/12338/Using-ROW_NUMBER-to-paginate-your-data-with-SQL-Se
And to avoid UI getting hang you can use BusyIndicator control available in WPF Toolkit and show "loading" while you are retrieving data from table.
Gaurav Khanna | Microsoft VB.NET MVP | Microsoft Community Contributor