There is no automatic way to do what you are asking. I solved a similar problem by adding a user sequence field. As records were added to the table, my code incremented the sequence by 10. However, the user could override the number to change record 30 to 15 to place it between 10 and 20. I then gave the user a button to renumber the records so my code looped through the set (backwards - this is important) and renumbered each record. You do the renumbering backwards so you will avoid generating a duplicate number and causing an error. The user number field needs a unique index (in combination with the order) to prevent duplicates so renumbering becomes tricky.
10
15
20
if you renumber from low to high, 15 becomes 20 but 20 already exists and that causes an error. So renumbering from high to low requires that you count the number of rows so you know what the highest number will be.
Before getting involved in this, make absolutely certain that this is necessary and be sure the customer understands the cost. In my case, the list of items were chemicals and the sequence field specified the order in which they were added to the mixing vat so there was no existing data field that could be used for sorting purposes. The customer needed to specify the incorporation order.