What should I do if a professor agrees to write me a letter but cannot guarantee it being the strongest one?
I think he is honoring you with his honesty, in fact. First, take his advice and look for another letter from elsewhere. If he is well known then his letter probably won't help you with this grant. He probably feels an obligation to support his own students to the maximum. 

But you could also ask him for his advice on what to do. He would probably say the same (get another person to write). 

If you do find another writer, just let him know that you took his advice and thank him for it. It will keep future doors open. 

But in future, I would definitely ask him for his help with letters and advice. He has been honest enough that you can trust him and be pretty sure that he respects you in return.