This is interesting because my 4 1/2 yr old also likes to buy things with his money, but he does like to use it for things other than toys (like going to a bounce house place) occasionally :-). We did talk during a recent shopping trip about saving it for something bigger/more expensive, or buying something now. He chose the "now" thing, but said, "next time, I'm going to get the (whatever -- which cost $40)" So, now I'm hoping I can help him save up for it.
I think the teachable moment will be at home, not while he's in the store, looking at all the wonderful toys. He won't be able to overcome the desire to have something "now." And rather than take him to the store just to spend his money, let him look at catalogs and ads, pick out what he wants, and save towards that. Then, you might help him avoid impulse spending out by not taking him -- or not taking his money with you -- when you're on a shopping trip. When he says he wants something, remind him what he's saving for. If he gets upset, you can talk (in 4 yr old terms) about "impulse" spending, and let him know you're helping him stick to his saving plan so he can get the thing he really wants. You may have to endure a little fit, and it may seem pointless to still make him wait to spend, but make sure he understands that you're on his side, and remind yourself that you're setting an example and teaching him a valuable lesson.
It's great that you have set up a system for him to tithe. You might even add more "buckets" to the plan for him. Maybe he can have two or three buckets or budgets for the types of things he likes to buy or do. You could help him have a book budget, toy budget, fun place budget (i.e. Bonkers, McDonald's), and possibly a "giving" budget, where he could use a portion of his money to buy a toy, canned good, or article of clothing to donate to a local charity.
Of course, discuss his budget plan with him, and work together to come up with his different buckets or categories.
You can use several small piggy banks (check dollar general), mason jars, or a few envelopes (keep them in a pencil pouch, small file folder or coupon separator) to hold money for the different categories
Hope this helps, and let's pray that our boys become responsible spenders!