I read somewhere that all Input have to be handled in the MainThread of the Program
Not the main thread, the thread where the window was created.
Is that a SFML restriction or general for Windows?
It seems to be a "standard" restriction, I think it happens on Windows, Linux and Mac OS X. There's a workaround on Linux, but it is not used in SFML for consistency reasons.