WM_PAINTをフックしてるんなら
TextBox1.New_Line_Check(TextBox1);って呼ばないで
TextBox1.Refresh();とかしてやれば再描画されるんじゃねーの?

でも描画のたびに全行スキャンするなんて重そうだね♪ 

あと、ちょっとは命名規則を考慮してみよう!