The threading to capture the mouse clicks isn't an issue but you would need a time delay for the user to press the left and right mouse buttons. Otherwise, when the user first presses the left mouse button, we do not know if this click is intended for another program or if it is part of a left-right mouse click combination. Therefore, we have to hook the mouse so that we can introduce a waiting period after every click. If after the waiting period we do not receive another click, we would send that click off to the intended application. If we get another click within the time period, we know to toggle Circle Dock.
The problem is that this waiting time period greatly impacts the usability of clicking normally with the mouse.