I'm going to offer my own theory here, which doesn't seem to be in line with the most popular theories which seem to me to be creative guesses at the origin.
I think it's possibly from twitch.tv culture. "Kappa" was a popular emote with a smug face often used to denote sarcasm. Plenty of streamers have used the phrase "No kappa" to indicate they're not joking, and some shortened it to "no kap". Since it was passed on orally, it became mistranscribed to "no cap." People were looking for an explanation for a phrase that didn't exist, and inadvertently invented one, which became the predominant theory that you'll find if you search for "no cap origin."
No, I'm pretty sure it came from hip hop culture, like a lot of slang recently. I'm basing this purely my anecdotal observation of the kind of people who use it most frequently.