I think it is generally not possible to give a 100% guarantee that every helper will go immediately after its use - some helpers help multiple other methods for example, but I think there are sufficient benefits to justify the effort to always try to put them after at least their first use, and as close to their use as possible.
Private at the bottom seems more like an outcome we might expect to observe than something we should specifically be trying to achieve, or maybe a legacy habit from C++. The one benefit I can think of for clumping public methods at the start is that it would be easy to get an overview of the public methods a class presents without a lot of scrolling, assuming we don't make our methods very long - I tend to get that information from my IDE so that has little value for me, and without IDE support I would rather visually scan for `public` at the start of a line to find the next public method than visually scan for a specific method signature in the middle of a line (which may share a name with other method signatures) to find a helper method somewhere later in the file.
The major benefits I see of putting helper methods immediately after the method in which they are used is that it makes the code easy to read from top to bottom (particularly handy during reviews) with a clear idea of the point of each method, and it increases the chance of being able to keep related code visible on the same screen when modifying and reading it.