1. Bueno esa idea de filtros por columnas lo solucione de la siguiente manera y cree un barra de filtros dinámicos según el siguiente gráfico para que tengas una idea (barradefiltro.jpg).
En el puedes adicionar filtros, eliminar y cambiar las columnas sobre las que voy aplicar el filtro, y ademas devuelve una condicion de filtro que se utiliza para aplicar en una consulta sql o sobre un set filter.
2. Tu segunda consulta es un poco complicada nunca lo intente, pero debo suponer que con el evento gotfocus y lostfocus del evento del text de la columna podrías determinar el cambio de columna y fila y reflejarla en el otro grid (es una idea)
3. Para adicionar eventos dinamicamente o en tiempo de ejecución puedes usar el bindevent, que sirve para que remplaces el evento de un objeto determinado por otro que tu hallas creado.
Espero te de una idea y sea lo que estas tratando de lograr.
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil 044-949398047
Trujillo - Perú