Wenn ich dich gerade richtig verstehe lag das ebenfalls daran, dass dein Code einfach mit Voller Geschwindigkeit durchgebrettert ist.
Du hast ja die neuen Daten (eine Daten-Zeile) angelegt und dann erst die nächste Zeile aktiviert .
Das ist an sich noch nicht schlimm, die Zeit in der die Daten an der falschen Spalte anliegen ist ja nicht lang. Aber dann hast du die Daten nicht ein Weile an der richtigen Zeile anliegen lassen sondern genauso schnell weitergeschaltet.
In der Summe lagen die Daten also die gleiche Zeit lang an der richtigen, wie an der falschen (vorigen) Zeile an. Dadurch leuchten denn natürlich die falschen Zeilen genauso hell mit.

Versuchs mal mit dem Timer. Das sollte die Probleme beheben. Zudem hast du dann zwischen der Aktualisierung der Zeilen immer massig Zeit andere Dinge zu tun (zb eine Uhrzeit zu aktualisieren, Snake laufen zu lassen usw)