Sorry, Melissa, but I don't think that he would have any more luck with Americans than with anyone else!
The problem with your boyfriend's pronunciation is not the sounds but the stress patterns. The confusion occurs because he is using Spanish (syllable-timed) stress patterns when speaking English, and he is putting equal stress on all words in the sentence. He's saying the words right, but getting the stress wrong. Even Spaniards who speak English fluently struggle with the stress-timed nature of English, often producing a stream of language that sounds like machine-gun fire. This is particularly an issue when understanding meaning depends on correct stress.
When a native English speaker with American pronunciation says "I can go", the 'can' is reduced to a short unstressed sound like 'c'n', and the word 'go' is stressed. That's how we know that it's a positive statement.
By contrast, when a native speaker of A.E. says "I can't go", the word "can't" is stressed, so we know that it's a negative statement. There's also a slight pause between the two words where the 't' is swallowed The 't' isn't pronounced, but there is a micro-second break where it should be. Native listeners are aware of this clue and pick up on it.
Your bf isn't doing any of this, so that's why you can't hear the difference. You could try directing him to Rachel's English videos on youtube. She does a very good tutorial on explaining the difference between 'can' and 'can't' in American English, with particular focus on stress differences.
It can be difficult for us native speakers too. Like Adrian, I say "can't" with a long "a" like "far". Some people might say that it would be easier if Americans and others adopted the London accent, at least on this issue. But I would never suggest that.
If you listen closely enough, you can hear a glottal stop in place of the "t". It's like a short, sharp breath pushed out from deep in the throat. One way of noticing this is that e.g. "can go" often sounds like one word whereas "can't go" sounds more like two words, with a space in between.
As non-natives tend to pronounce every word distinctly (more like "can't go"), it might help to focus on how "can" links smoothly to the next word and try to imitate that. Then the distinction between "can" and "can't" may be more perceptible.
The main difference is a word on which a speaker makes an emphasis. If he/she wants to say that he/she "can" something he/she stresses a word describing what exactly he/she can otherwise the emphasis would be on "can't".
"I can DO this!", "I can DRIVE a truck."
"I CAN'T do this", "I CAN'T drive a truck."
That's a good question. Part of it is context. For instance if you see someone stealing something, the thief knows you are yelling "hey, you can't do that!". There is also more of a pause after can't than there is after can but, depending on what follows, it may be hard to discern.
One way to learn the difference is to listen to recordings of both words being used in various sentences until you can tell the difference (an idea from "Fluent Forever" by Gabriel Wyner).