What is the difference between rateless and online encoding?
They are not the same thing. The difference is when you know the message to encode.

In fountain codes, you know the message at the onset. The code allows you to keep generating more and more redundancy. The message, however, is fixed.

In online codes you do not know the entire message at the beginning, but you learn it as time goes by. Each time you learn an additional part of the message you can encode this part in a coherent way to the encodings of the (prefix of the) message you have already obtained or sent.