Can I generate an offline Bitcoin wallet using only OpenSSL?
You are almost correct ;-) 

You can create a public/private key using OpenSSL (in fact, some wallets use OpenSSL libaries to generate the keys). However, the bitcoin address is not your public key but a function of such public key. The exact function is defined here
https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses

So, once you generate your pair of keys and compute the bitcoin address from your public key, you can receive bitcoins in such bitcoin address.