There is only one way mate, you are gonna have to zip them up on server side and then download the zip file.
You can try this
SharpZipLib[
^] which is an open source archiving library for C#.
Essentially, the following steps should be followed:
1) Add each item from the grid i.e. filename to a list as you check them one by one.
2) For each filename, prefix it with the base path (on your server) and using ZipLib add it to an archive file i.e. a zip.
3) finally, save zip file to the disk.
4) Redirect the client to the location of the zip file and browser will take care of the rest.
I know its not full code but you will rarely get full code on CP, unless its quite small. But this should give u an approach.