Сначала вы должны использовать сеанс без сохранения состояния. Вместо вызова OpenSession (); (на фабрике сеансов) вы вызываете OpenStatelessSession (); Он имеет тот же API, что и обычный сеанс, но не имеет кеширования и прочего (намного быстрее для больших операций с данными). Затем вам нужно установить размер пакета, вызвав .AdoNetBatchSize ([[размер пакета]]); где вы устанавливаете базу данных в вашей конфигурации.
Это может помочь. Но вы должны знать, что это не ретранслятор, для которого построен nhibernate (или любой другой orm), поэтому не рассчитывайте на какую-либо производительность.