What performance problems are you having? 10000 records is a lot, no matter how you look at it. Getting it from SQL takes a while, as does rendering it to the client. You need to find out where the bottlenecks are. If it's SQL, you may need to optimize your tables or queries, or cache the data. If it's the rendering, you may need to minimize GridView event handlers, or choose a different control such as ListView so you can control (and thus minimize) the rendered HTML.
Why can't you use paging? Obviously, that's the most efficient way to handle it. What's the use case to have all 10000 record in the grid at once?