But each packet is numbered, why can't one use the ACK of the numbered packet instead?
A router or other node in the network that's just moving these packets can't decrypt them, so it can't tell the "ACK of the numbered packet". The spin bit lets such a node estimate the round trip time anyway because it will "spin" between set and unset on each round trip.
I think you get this information for free as part of TCP.