You can use C++11 thread, instead of boost thread because it supports lambda which made life working with thread, a lot simpler. You should separate the callback passing and real work into 2 functions.
std::thread *startThread= new std::thread([&](){
obj.ConsumeMessage(std::bind(&second::WaitForConsumer, this,
std::placeholders::_1, std::placeholders::_2));
});