Tenho certeza de que não há como fazer isso com total generalidade, porque os cursores de texto são um recurso do aplicativo, não um recurso do servidor como os cursores do mouse. O aplicativo decide onde colocar a entrada com base em suas estruturas de dados internas, e o cursor de texto é uma maneira de informar ao usuário o que ele fará com a entrada. No que diz respeito ao servidor X, há uma janela focada e é isso; a janela focada faz o que quiser com a entrada.
Agora não consigo pensar em um aplicativo que realmente tenha mais de um cursor de texto, em um sentido abstrato de interface do usuário (alguns não têm nenhum, é claro). Mas, a menos que o aplicativo tenha uma interface para informar aos outros onde o cursor de texto, ou o cursor de texto, é visualmente distinto, não acho que você consiga fazê-lo.