왜 for문이 끝난뒤에 화면이 갱신되느냐? 그 이유는 화면을 갱신하는 윈도우 메세지의 우선순위가 낮아서입니다. for문같이 루프문써서 계속해서 화면갱신을 하도록하는 메세지를 보내면 즉, 이전의 화면갱신하라는 메세지를 처리하기전에 또 들어온다면 이전에 들어온 메세지들은 계속해서 무시됩니다. 때문에 화면이 갱신안되고 계속 같은 모습으로 남아있고 루프문이 끝난뒤에야 화면이 갱신되는 겁니다...
계속해서 화면을 갱신하도록 할려면 Application.ProcessMessages란 메소드를 루프문안에 써보세요...
실시간으로 뿌려주실려면 트리거를 쓰시거나 아님 일정시간마다 계속해서 테이블값들을 다시 읽어와서 뿌려주는 방법밖엔 없을거 같네요...
잘은 모르지만 for문의 경우는 마지막까지 다 돌고 난 후에야
그 결과값을 뿌려주는 걸로 알고 있습니다.
(그래서 가장 빠른 반복문이겠죠...)
실시간으로 보여주길 원하신다면 While ~ do 를 이용하시는 것이 좋을듯 합니다만...
속도는...;