На клиенте должен стоять X сервер, данные по протоколу X11 идут внутри ssh канала (там же внутри ssh соединения может ходить и port forwarding и socks proxy). На сервере должен быть включен X11Forwarding, на клиенте тоже должен быть включен X11Forwarding.
Вроде как-то так.
На сервере формируется команда типа "создать окно 100 на 100 с кнопкой", передается внутри ssh канала клиенту, который передает это на локальный X Window Server, который уже и рисует это окно.
BATYA: Тогда тут надо еще много кода написать. Во-первых нужен массив [i,j], куда при помощи цикла и генератора случайных чисел нужно расставить пары, флаг состояния игры "кликаем по первой кнопке" или "ищем пару", запоминание предыдущей нажатой кнопки (для случая если не угадали), а в S_MouseClick уже работа с этим массивом и флагом. К сожалению писать кучу кода не возьмусь.
Чтобы доказать что утверждение не верно, нужна ссылка на документацию, где написано, в каком порядке будет выполнение кода. А в документации описаны только "и", "или" и запятая.
void S_MouseClick(object sender, MouseEventArgs e)
{
int i = (sender as Button).Left / 40;
int j = ((sender as Button).Top - 30) / 40;
(sender as Button).Text = "?";
}