Ну, вам нужен какой-то насос событий, и, будучи дочерним окном в соединении с общим дисплеем X, это означает, что оно привязано к главному циклу событий.Технически вы можете запустить второй поток с собственным подключением дисплея и циклом обработки событий.К сожалению, Xlib не очень безопасен для потоков, особенно в этом отношении.Вы можете сделать это с помощью Xcb.
Другой подход - это поместить ребенка под опеку отдельного процесса и использовать XEmbed.