Я не понял, что значит «хэшировать». Если получить хэш-сумму — то все алгоритмы расчёта хэш-сумм позволяют скармливать файл небольшими блоками. И методика зависит библиотеки файлов и хэш-сумм, которой вы сейчас пользуетесь.
В Go все пакеты для работы с хэшами (например crypto/sha256) умеют принимать данные по кусочкам.
Просто создается объект с интерфейсом io.Writer и туда можно с помощью io.Copy, например, перенаправить поток данных.