First of all, you can create an Ethereum account completely off chain. Under the hood you're just using clever cryptography to generate key pairs.
Any wallet that handles Ethereum accounting usually generates addresses for you. For example, the Jaxx wallet will create an Ethereum account on demand.
The Ethereum Yellow Paper defines how to generate 'accounts' formally. Developers with expertise in many different languages implemented these rules so that their client implementation of the Ethereum protocol can create an account for you.
Some popular clients are written in Java, Go, and C++.
For participating in the network you've quite a few options. All of which depend on your preferences. Some of them are...
Is the device you're using constrained by memory? Perhaps you could run a light client. This is readily available in the Geth client, from versions 1.5
onwards.
Not too worried about third party services controlling your world view of the blockchain?
If you trust intermediaries to run a node on your behalf then you can use services like MetaMask. You do expose yourself to possible issues including Sybil attacks.
I hope I've answered your question, if not leave me a comment. :)