Bueno, como viajo menos que la Cibeles no sé muy bien cómo son las web de las búsquedas de Aeropuertos, pero viendo tu código y entendiendo (creo) lo que quieres hacer, te pongo aquí la versión que he hecho en un ratito. Le he respetado eso de poner tres columnas, una tamaño 0 y las otras dos duplicadas que pones en tu ejemplo... aunque no entiendo muy bien el porqué pero como ya estaba hecho...

. Lo suyo sería pasarle un array de arrays a la propiedad list y construir el gridview en base a eso, con las columnas ilimitadas y las filas ilimitadas, pero como ejemplito vale.
Saludos
Tal como está hecho, la lista se construye al hacer click sobre el textbox. Eso, en caso de listas muy largas puede ser una carga para el programa. Se puede, de hecho así lo hice en principio, hacer que la lista se llene la primera vez que hace click y se mantenga oculta en las siguientes clicks que se hagan, pero el tema es que ese formulario que creas y ocultas genera referencias circulares a la hora de cerrar el formulario principal... o simplemente no se cierra dejando el programa colgado en memoria sin finalizar. Eso obliga a estar poniendo Quit al cerrar todos los programas donde se use el control y eso es un peñazo. Supongo que un campo donde eliges una opción normalmente no suele ser pulsado veinte veces, sino una y ahí el tiempo consumido es el mismo que si lo creas sólo una vez.
Saludos
Por cierto, para los que no tengan experiencia con esto de los controles de usuario, si al cargar el proyecto por primera vez te dice que no puede abrir el formulario porque faltan controles, es porque el propio control, en este caso tFlight, no está aún compilado. Si esto te ocurre sólo tienes que compilarlo todo y si persiste en decir que no lo encuentra, cerrar el proyecto y volver a abrirlo.
Saludos.