Die Lösung, die Du suchst, ist im Prinzip der Ansatz von the_Ghost:

Irgendwo zählst Du ja eine Variable hoch/runter, der die Wartezeit zwischen zwei Frames (d.h. Bildern) steuert. Dieser Zählwert muss variieren. D.h. er muss während der Schwingung in Richtung Mitte ansteigen, und danach wieder abfallen.
Wenn Du einen Timer nutzt, dann ändere einfach den Timerzielwert. (Je nach Timermodus der End- oder Startwert)