Apache::Session works under plain CGI, and CGI::Session works under mod_perl, but I've never compared benchmarks for the two. My *hunch* is that using CGI::Session requires more memory (it requires CGI.pm, which is big), so if you're resources are tight and all you need is a basic session without all the other stuff in CGI.pm, then Apache::Session under mod_perl might be the way to go.
Both can be used under mod_perl and vanilla CGI. CGI is the *default*, doesn't mean it's required for CGI::Session to work. You can replace it via $query option with any CGI-compatible package of your fave.
Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!