И получается участок кода(с создания переменной и до вызова диструктора) код будет выполняться только одним потоком?
Как напишете, так и будет выполнятся.
По моему не зачем зашивать lock_guard в структуру/класс, он должен быть в функции/методе тут же создаваться и удаляться максимально быстро. Если это приведет к дополнительному коду - это небольшая расплата за потокобезопасность.