It is impractical for users to download an entire file when HDF5 files are very large. Are there tools available which would enable subsets of data to be downloaded?

Yes, there are and have been applications that enable this. OPeNDAP and iRODS are two such applications based on a client-server model.