Извини, поторопился: boost::read_write_mutex убрали, т.к. он приводил к deadlock-ам.
Но если операции модификации/доступа быстрые (что часто и бывает), то конкуренция за ресурс может быть невысокой, тогда и обычный мьютекс подойдет. Этот факт также свидетельствует о том, что в такой ситуации критические секции не дадут выигрыша в скорости, т.к., если мьютекс свободен, то WaitForSingleObject вернет управление, не переходя в режим ядра.