Found the video. Looks way more complicated than it needs to be.
If you have sprites: head, base an multiple body
Then a event like the following should do it. You can use the sine behavior instead for moving the head if you like.
--- head: set x to 320 + 100*sin(200*time)
--- head: set y to 100 + 50*sin(500*time)
--- body: set x to lerp(base.x, head.x, (self.iid+1)/(body.count+2)
--- body: set y to lerp(base.y, head.y, (self.iid+1)/(body.count+2)
You could use a instance variable instead of iid if you want to have multiple heads but for one this is fine. For a more interesting effect you could use qarp instead of lerp to give a curve. The middle parameter could be the position of an invisible sprite that's moving around with sine much like the head.