Yes, that's possible. This may not be the best solution but it works.
When loading your ordered table (first Customer, then Date) use the previous() function to check the last record read and compare the Customer numbers. If they are equal, define [HowToGetHis?] with a value of the previous [HowToGetThis?] + 1, otherwise its value will be one.
LOAD Customer, Date, Amount,
if (previous(Customer) = Customer, previous([HowToGetThis?])+1, 1) AS [HowToGetThis?]
The second example isn't entirely clear to me... Are you duplicating the Customer Nr? Or do you want to continue counting whenever the Customer number changes? In the latter case, use the first example but substitute previous([HowToGetThis?]), previous([HowToGetThis?])+1 for the True/False clauses.
For the third example you'll need the RowNo() value that is used whenever the Customer number changes. For all other rows with an identical Customer number, use previous() again.
I don't have a QlikView version handy right now, so I'm unable to provide you with a model. Sorry.