1) do I need to call setActive(true) for every window?
It depends what you do. Calling setActive(true) is necessary only if you call OpenGL functions yourself; if you use the graphics module, SFML will automatically do it for you.
And since a window is created and fully managed within a single thread, you don't even have to call setActive(false) (which would be needed if the window was created and used in different threads).
But why don't you just try the simple way, before asking if you need to do more complicated things?
2) what happens if I set the vertical retrace to true? Every window will stop the code waiting the retrace?
I guess so, but since each window lives in its own thread, they won't block each other. Again, why don't you just try?