pues la verdad no sabria hacer que no acepte letras de una manera correcta, pero se me ocurren 2 soluciones (sin contar try/catch que es algo lento)
char[] numeros = new char{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
o bien
string numeros = "0123456789";
1.- Seria al momento de presionar el boton revisar si para cada char en cada textbox es contenido en "numeros", y si no borrarlo.
2.- Algo poco eficiente, seria tener un Timer, y cada cierto intervalo, por ejemplo 100 ms revisar cada char en cada textbox, si esta contenido en "numeros", o sino borrarlo.
la diferencia esta en que quieres, algo un poco mejor, pero menos comodo para el usuario, o que borre las letras automaticamente cada cierto intervalo.