1) если этот класс размещен в куче (temp * T = new temp ()), будет ли это потокобезопасным (для каждого экземпляра, не для всех экземпляров вместе?
Да. Так как mx не является статическим членом класса, будет одна блокировка для экземпляра класса.
2), если я сделаю boost :: mutex mx -> boost :: mutex* mx, и выделите его в конструкторе, чтобы он был размещен в куче, будет ли код также поточно-ориентированным?
Да.Но потокобезопасен только для каждого отдельного экземпляра.
3) если теперь ответ на 1 и 2, как я могу сделать каждый экземпляр поток безопасным?
Ответы да, так что вы в порядке.
В случае, если кто-то еще задается вопросом, как сделать все экземпляры потокобезопасными с помощью одной блокировки - вы можете сделать mx статической переменной класса.