Extending the User Registration Form
If your only need is to add new required fields to the user registration form, you do not need modify the form through a module; by marking any user entity field as a Required field in the field UI, it will be presented in the registration form as a required field for registration.

If you require custom validation that goes beyond "it must be non-empty" you might need to employ a custom validation handler in a custom module, another helper module (e.g. Field validation), or a custom field module that matches your use case (e.g. Address field module).