Я не верю, что есть способ сделать это без прыжков через обручи.
C #, как правило, предназначен для предотвращения микроуправления ресурсами памяти и, как правило, делает все возможное, чтобы затруднить обращение с диспетчером памяти CLR как с чем-то иным, как с черным ящиком. Большая часть причины этого заключается в том, что диспетчер памяти обычно делает то, что он делает очень хорошо, и делает это лучше всего, когда вы находитесь в стороне от него. Как правило, достаточно хорошо, что я не удивлюсь, если в любом случае не удастся получить реальный выигрыш в производительности, если поместить буфер в стек вместо кучи.