depending on the size of the payment, the agreement can be a simple verbal one for small amounts or if it is large it can be a legal contract. it needs to address where you get the price from, the time frame the transaction has to be confirmed and the price change percentage that would require extra actions.
but others are correct, you are receiving bitcoin not fiat so you shouldn't even be concerned about fiat value of it. 1BTC is equal to 1BTC regardless of its price.
What if he decided to keep the coin in the wallet for 10 years, and within those 10 years, the value grows to give him like $10000 extra, are you saying he will still have to send it back to sender? I don’t think this is a wise idea, no matter the contract signed, the sender did not over pay, he paid him exactly what he needed to pay him, and that is his own luck if it grows higher.