Насколько большие блоки и постоянной ли они длины? Нельзя ли записывать блоки в произвольном порядке (особенно, если они постоянной длины)? Нельзя ли сделать очередь на запись, и пусть каждый поток кладет свои обработанные блоки в эту очередь, а еще один поток пусть выбирает из очереди и упорядоченно записывает. Нужно, конечно, будет принять меры, чтобы очередь не распухла, но тем не менее.