Boost is an absolutely incredible library, and any C++ programmer who doesn't use it is probably missing out. That being said, if you know ACE (i.e. have made it past the pretty steep learning curve) then ACE gives you more options. Boost's thread library is pretty great, but they simply don't have as fine control over primitives. There are also many things that you can do in ACE that you simply can't do in boost easily -- such as non-static pooled allocators.
Unless I am completely missing something, there is also no equivalent to the TAO in Boost.
I work on performance critical C++ code (yes, there really is such a thing) and we pretty much use ACE for anything involving IPC, sockets, or Threading -- and boost for everything else. That being said, the boost ASIO, thread, IPC, and Intrusive libraries are so easy to use compared to their ACE counterparts that unless performance is critical or boost simply isn't enough -- there isn't much use in learning ACE from scratch.