This is the "what about leaving room?" variant described in the submission with either (a) a smaller range of available values if you're limiting yourself to single characters and/or (b) less efficient storage.
You move cherry to the middle of the list. Now, you have:
id pos name
1 'a' apple
3 'g' cherry
2 'm' banana
Now you move banana back to the middle of the list, which gives you this:
id pos name
1 'a' apple
2 'd' banana
3 'g' cherry
Keep doing this, and the gap keeps shrinking. You need to make pos longer to be more precise to fit in the gap. Eventually you run out of space in your string field.
I read their response as not limiting themselves to a single character (which you have too, if I read you correctly). If they use a text column, it's practically arbitrarily large. I believe the limit is around 1GB in Postgres. They've also dismissed concerns of storage, so it's a price they're willing to pay.