No, it is ordered. The listtransactions function gets transactions like this:
OrderedTxItems returns a list of all wallet transactions for account strAccount ordered by the transaction's nOrderPos. nOrderPos is set in a way that ensures that all newly-seen transactions are listed later than ones seen earlier, even if the transaction seen later probably came earlier chronologically. I'm not 100% sure that this rule is followed when rescanning, but I think so.
Note that listtransactions internally loops through every wallet transaction each time you call it to ensure the correct ordering, even if you use an offset. This might make it slow for large wallets.