Moneygrams can't be cash without an account. The only things that can be cashed without having an account are checks drawn from BoA or federal treasury and travelers check. Federal checks cost $6 to cash and traveler's checks are free.
BUT.. what you can do is
1. sign the moneygram over to someone that has an account. When you do this, you have to be there with ID. Signing over a check is an exception the bank makes therefore the teller will always call someone over. If your friend's account has enough to cover the moneygram, then the answer is yes and the friend's account has to be at least a year old. IF the moneygram is over $500, chances are the answer will be no. The bank supervisors will see it as too much of a risk.
2. Deposit the moneygram in someones account through an atm if you don't have ID.
3. Write "parent of a minor" on the back of the check and have someone that has a BOA account cash it.
If the bank doesnt work out, your options are check cashing places like Walmart.
Honestly, getting traveler's check is always a better idea, they don't require ID and are FREE to cash.
No, you cannot cash a money gram at Bank of America without having an account there. You can try other local banks but I would be very surprised if any of hem were willing to cash it. You can try the suggestions of SUPERME but if they don't work you will have to go to a money gram Location or a check cashing location.
I have been in the industry quite some time and while you may not always like my answer, it is what I know. BofA has many policies and procedures and I do know how they work and even how to work around some of those policies. Again, it may not be the anwer you like, but it's honest :-)
I am also a licensed realtor for the state of Oklahoma.