I'd use the layout text @@ to number your portal rows. This will always perfectly number your rows with no gaps in the series. Then I'd use a separate number field on which to sort your records into the desired order. This hidden number field can have any number of "gaps" or decimal values such as 2.5 in it's series. To change field's location in the sort order, you'd enter a number that falls between the two rows between which you want to insert it.
Another approach is to use a find or go to related records to pull up the records in a found set on a layout based on the portal table's records, sort them in the desired order and then use replace field contents to assign a serial number to each of the records you've found and sorted. Thus, you can move a record to a different position by giving this "row number" field a value such as 2.5 to make it the third row in the portal and then use the sort and update script just described to renumber your records into a perfect sequence.
perfect, I didn't think about using decimals!