First, try loading the records on a background thread. This will allow the program to remain responsive while the records load. Another thing to try is paging the data in the grid -- show only so many number of rows in the grid at one time (e.g. break the results up into multiple pages like search engines do). Perhaps the best advice I can give first is, find out where your bottleneck is: loading the data? Creating objects from the data? Binding to the data? Displaying the data in the grid? Once you locate your bottleneck, you can and should optimize just that part.
Tech, life, family, faith: Give me a visit. I'm currently blogging about: Roman Catholic Relevance? The apostle Paul, modernly speaking: Epistles of Paul Judah Himango