I committed a version of the TAChart axis units in which the minor axes can have a Source for the mark positions like in the main axes. The files are in the main branch of the Lazarus gitlab repository, they will not be back-ported to the upcoming Laz 3.0 since this is a new feature and may pose some stability risk. If you are using the v3.0RC1, however, there is a good chance that you may be able to merge the new code into your TAChart: download the files tachartaxis.pas and tachartaxisutils.pas from
https://gitlab.com/freepascal.org/lazarus/lazarus/-/tree/main/components/tachart and write them over the same file in your existing installation (they are in folder (lazarus)/components/tachart - but make a backup copy first). Then recompile the IDE (menu "Tools" > "Build Lazarus with profile..."). (I am not sure whether this will work with Laz 2.2.6).
I am attaching a modified version of my previous demo project. It adds two ListChartSources, xMinorMarksSource and yMinorMarksSource, which contain the Marks positions and their text for the x and y axes. The text is always the mantissa of the mark value (i.e., '5' rather than '5000'). Separate sources were used because the larger mark values in each decade tend to overlap in case of the y axis, and thus the marks for 7 and 9 do not get a label here. Of course, a single chartsource could be used for both axes as well, and the Marks.OverlapPolicy could be set to opHideNeighbour; however, this results in some instable label positions when the window size is changed.
For the main marks I decided to switch to exponential format, i.e. a short "10^6" rather than a long "1,000,000". In order to display "nice" exponents I switched the Marks.TextFormat to tfHTML and used the axes' OnGetMarkText event to send the mark text as HTML with "sup" tags.