First, be aware that serving mixed content can trigger browser warnings that tell the user that not everything they are seeing is "secure content".
Second, unless you are experiencing performance or latency problems, it's probably not worth the effort to split up your secure and non-secure content. The marginal server load created by SSL is quite small these days compared to 10-12 years ago, and most of the impact is caused by the initial connection negotiation, which is going to happen no matter what, if any part of your site requires SSL.
That said, if you need the performance boost and you are okay with the potential user confusion/annoyance, then I would recommend setting up a separately named host (eg, if your secure website is www.sample.com, register, eg, static.sample.com as a CNAME/alias to that DNS record (or as a separate IP if you are feeling extravagant)), setting up a new VirtualHost in Apache for that name without SSL enabled, and then use that location to store your static content.
If you need directory-by-directory separation of SSL and non-SSL content, the best way to go is to set up a second VirtualHost in Apache listening to port 80 and pointed to the same place your SSL VirtualHost is pointed, and then add redirects for the URIs that you require to be encrypted. For example:
<VirtualHost *:80>
ServerName www.sample.com
DocumentRoot /var/www/www.sample.com
Redirect permanent /secure https://www.sample.com/secure
</VirtualHost>
<VirtualHost *:443>
Servername www.sample.com
DocumentRoot /var/www/www.sample.com
SSLEngine On
</VirtualHost>
(I obviously left a lot of stuff out, don't try to copy and paste.)