3.6 million rows. Lets assume each row has 128 bytes of data, which is 460,800,000 bytes is 439 mb of raw data you're trying to select, which doesn't sound too bad.
But this data will be wrapped in objects/models/turned to json, so your memory requirement turns out at least roughly ten fold. 4.3GB.
Okay, still not too bad. Now we need to push it to browser, style it, wrap it in html, json etc...
We're going to push roughly 1.4GB in json to the client. client downloads happily. The json is in the browser. It's getting turned into an object. Memory times 4 roughly. 5.6GB. Not too shabby, but the browser will have copped out because it has a 256MB memory limit per tab(I've run into this when coding a game, will vary per browser).
But let's say it's a custom unbounded browser which can just do it
Iterate over the json and make a spreadsheet like display, create all DOM nodes, attach them to the DOM tree, attach event handlers, etc.. Memory times 20: 112GB.
So the customer has a big gaming rig with incredible amounts of RAM in it, a browser that can handle the addressing spaces, and an OS that can handle this.
Now you get into the fun territory of paging. The OS needs to page that RAM because too much goes unused and the OS has higher priority tasks to run whilst the user stares at the screen. No microsecond goes unspent. Write to disc, read from disc on every scroll, killing the hard drive of your client.
In short, the browser won't allow it because it has a memory limit. Explain to your customer what he want's requires a custom OS, custom browser, custom computer and still will be slow because of CPU limitations.
Just do what google docs does, load as needed. When the user scrolls, load the needed display data, no more no less, and unload data that's off screen for 5 minutes, to stay under your 256MB limit. When you have a query made up, it's just a simple question of setting an offset and limiting the number of results you want. The rest of the stuff works the same.
The real world has limits, your clients wishes do not. Bring them in balance.