To send 1 satoshi how much would you have to pay in fees, the same? At least 1 satoshi right?
The minimum number of sats you can send in a standard transaction is 546, and the minimum fee you can set is 1 sat/vbyte, which would be somewhere around 140 sats for the smallest "standard" transaction (although the smallest ever transaction broadcast was 62 vbytes).
This doesn't apply to using Lightning, where you send amounts and pay fees denominate in millisatoshis (0.001 of a satsoshi).
doesn't this give bitcoin a hard cap on maximum possible price?
No, for two reasons. Firstly, Lightning already uses sub-satoshi values, and secondly if we did reach a point where a single satoshi was worth $20 as you suggest, then I expect the community would back a hard fork to add more zeroes after the decimal point.