OK, fasten your seatbelts. Brevity is not one of my strong suits.
I agree with a lot of the thoughts on here. First I'm going to say a few things, then I'll actually (try to) give you some of the advice you asked for.
1.) First of all, you have an "unspoken" agreement. That's not really an agreement. This isn't contract law with implied agreements.
2.) You don't share, yet you have jerked off with guys? Ummmm... pot, calling kettle... Does that mean if he had a blowjob that's not as bad as f**king? Or, you don't want him to be with other guys, but it's OK for you to jerk off with other guys?
3.) It could happen anywhere... it used to be in bars. But having profiles on these hookup sites is just asking for trouble. It just makes it that much easier, and that much more tempting. I appreciate that you know that he's on these sites, but is that really what you want?
4.) You're both the jealous types... yet you allow each other to have these profiles on hookup sites? You should be in a permanent state of jealousy and suspicion.
5.) Whatever works for you as a couple, great. But you have to set the ground rules. Have a conversation and SPOKEN agreement. Do it in writing if you want.
6.) Dates are having dinner and a movie. Arranging a hookup is not a date. And really, does it matter whether they were prearranged or "spontaneous?" Cheating is cheating.
7.) Why the hesitation? Because you don't want to confront him? Well, would you rather live with this eating at you all the time. Or is it because you'll have to explain how you found out, and you feel guilty about it. Or are you afraid that when confronted he will get mad at you. Well, ummmm, yeah, probably. But sometimes you have to piss off your significant other... you can't avoid it. Or are you hesitant because you feel guilty that you also violated the "unspoken agreement?" No one is saying this will be an easy conversation to have, or to start. But if it's bothering you this much, unless you think you can get over it and forget/forgive (and assume it's going to happen again), you have to bring it up.
8.) What do YOU want? To dump his ass? Then do it. Do you want to stay together? Decide if you can live with this arrangement, or decide what you can live with. Then bring it up to him, and come to an agreement. If you can't... well that should be your answer. That doesn't mean it's easy. In fact, sometimes the right thing to do is the hardest. If you really love someone, to realize that you just can't make the relationship work, is one of the hardest things. You'll probably try to hang on as long as you can. Understandable. But there's comes a point...
As for how you bring it up. Well, pussyfooting around isn't going to work Tell him that you need to have a conversation about something, and it's very important. If you can have it then, fine, otherwise set up a time. But he'll probably be wondering what it's all about and try to get it out of you. So better to mention it when you know you'll have the time and privacy to talk. Maybe start out by telling him that you found about something that has been bothering you, and you felt it's important to discuss. You may have to acknowledge that this is something you should have talked about before. So you've set the stage without dragging it out. Then you might tell him you know that he's been having sex with other guys. I wouldn't volunteer how you know, unless 1.) he asks, or 2.) he denies it. The other option is to flat out ask him if he's been having sex with other people. He may assume he's been busted and cop to it. It depends on how he feels about it. So now you've got it out in the open. You may then want to want to discuss what each of thinks is acceptable in the relationship (not necessarily what has already happened), and perhaps even what you thought you had agreed to, or what your understanding was. If going forward you're not going to have sex outside the relationship, then you should discuss the online profiles, etc. Don't let him change the subject... he may try to make this about you snooping instead. He's just manipulating the situation. Tell him you'll talk about that next, but first things first.
Once you get it out in the open, even if you're pissed/feeling betrayed, etc. you should at least feel better just to get it out and not sit and stew on it privately. The conversation may go fairly smoothly (if you're lucky), but be prepared for it to go downhill. You may not even finish the conversation. I don't know either of you, I don't know what his reaction will be. Also... do your best to remain calm. Don't come at him and attack him. Don't raise your voice. Don't be catty and sarcastic. You have to try and stay as level headed as possible. As it is, you're putting him on the hot seat and making him either defend himself, or cop to doing something he shouldn't have. He's already going to be on the defensive most likely, so don't compound it with how to speak to him. Be prepared to tell him what you want. Make sure you've thought it through. And, as hard as is may be, be prepared to tell him that if you can't come to an agreement, you are prepared to leave the relationship. Don't use it as a threat (this is where tone, etc. can come into play), but just stating what the different options are.
It doesn't sound to me like you want to dump his ass for cheating... or you would have done so already and not looked back. So, in my mind, you are already indicating a willingness to eventually forgive and move forward. Fine. But understand that nothing is solved if you don't come to an agreement moving forward. And, much as it may be tempting, try not to use this against him every time he does something in the future that you don't like. It doesn't mean forget, it doesn't mean it's never appropriate to bring up. But most of the time it just brings up bad feelings on both sides. Focus on what the present and the future, not the past. Otherwise you will both end up resenting each other... you for him doing this (and constantly reminding yourself about it), and him for you agreeing to move forward but never letting him forget what he did at every turn.
Hope that helps... I can't say the advice is perfect. But if you want my opinion, that's my two cents.