I am trying to understand your problem first, which is a little bit difficult because I don't speak english very good (ironically for a software engineer).
> When I got it correctly you have multiple threads which are not independent from one another which is propably an artifact from your design decision to program it at the beginning as a single core game.
So to sinc them you could let your drawing thread wait in an endless loop to be invoked by the sim thread using a simple boolean or vice versa. So they would run both at the same time but one thread would wait for the other to finish.
> Your exact problem is that you have problems updating your unit drawing position. This is strange because shouldn't the position of your object be computed in your sim-thead?
You should maybe provide more information what your issue exactly is.
I personally can't really locate the problem.
What happens when the drawing framerate is lower (or higher(?)) then the other thread?