Hey ,
The best way to synchronize any two external sources would be to compare timestamps. However, given your current hardware configuration I would suggest buffering the pose of your Vive tracker into an array of transforms and using the pose that matches your incoming image (You will likely need to interpolate between poses due to frame rate misalignment).