I am writing a program to simulate the activity of ants in a grid (PDF). The ant can move around, pick up things and drop things.

The problem is while the action of the ants and the positions of each ant can be tracked by class attributes easily (and we can easily create many instances of such ants) my client said that since he has a background in functional programming he would like the simulation to be made using functional programming.

To be clear, the original words from the client is "no class" only, but not "functional programming". So I assume he doesn't mean functional programming and I can do it imperatively. Additionally, I have no prior experience in functional programming.

However, I think it's beneficial to focus on this question being particularly about a functional programming requirement than just simply "do it imperatively."

How would you handle this situation? Would you try to persuade your client that using object-oriented programming is much cleaner, try to follow what he required and give him poor-quality code, or do something else? 

Object-oriented code is not by definition cleaner, and conversely non-OO code is not by definition crappy.  While there does seem to be a rather obvious object-oriented mapping to this particular problem,  I would suggest that you try the functional programming approach anyway.  Give it your best shot, try to solve the problem in the best functional programming style that you can muster, and you might just learn something you didn't expect.