This is a general issue with sorting by date columns. Because a date column normally includes a time accurate to a fine resolution (sometimes milliseconds), anything later in the sort order is effectively disregarded because the probability of getting two identical items in the first date is, for most applications, too low to see it's effect.
What you therefore need to do is to truncate the initial date to a resolution you're happy with (for example, 1 day) and order by that, at which point you get identical items in the ORDERing and your second clause comes into play.
I don't know MySQL well enough to know the exact syntax for this here, but on SQL Server the simplest way I know would be
SELECT * FROM Table
ORDER BY FLOOR(CAST(CreatedOn AS Float)), LastModifiedOn DESC
Which would give you a resolution of 1 day - the reason being that SQL Server dates when converted to floats give an integer portion that represents the day. If you wanted a different resolution, you can use DATEADD and DATEDIFF in the ORDER BY statement or convert the date to a string in an ASCII sortable format (e.g. YYYYMMDD hhmmss) and truncate at the appropriate place.