xmonad isn't threaded because the X server doesn't allow concurrent access -- it will crash.
Modern libX11 has thread "support" (it wraps every API call in a mutex) if so compiled and you make the appropriate call to tell it to do the wrapping; that's part of what the proposed patch did. It's not very smart and slows things down a lot; most people prefer to pretend it's still not threaded as a result.
XCB has slightly better thread support.
--