I have a dapp where I want users to be able to register an account without needing Ether. Is it possible on the Ethereum network?
I don't think it's possible to implement purely in Ethereum.
For a user to register or in any other way to interact with a smart contract, they must send a transaction. Miners pick the transaction, perform the required computation (e.g., add the user to the list of registered users), and save the new blockchain state. Miners are incentivized to do that with transaction fees (gas).
Now, imagine there was a contract that is free to use (pays fees for its users). From a miner's point of view, an transaction to such contract just says: "I'm not paying the fee, but that contract will". But how can the miner be sure? If the contract goes bankrupt or simply refuses to pay, no one can force it to.
Generally speaking, there is no such thing as debt in the blockchain world; promises cost nothing.
On the other hand, your application can combine traditional centralized interface and Ethereum contracts. A user can send you a request via HTTP, and you send an Ethereum transaction on their behalf. In that case, of course, the user must trust you to do what you promised.