How to make Username as non mandatory on Drupal 7 registration form?
Yes it's possible, there are couple of modules out there that will auto-generate the username and just require an email address on the registration form (and there are probably a few more as well)


Email registration


  Allow users to register and login using only an email address. Users can then log-in using their email address and password for authentication.
  
  A username is generated and assigned based on the user name part of the email address. Subsequent users who have the same name (email prefix) are numbered sequentially. For example, "johndoe@a.example.com" would be assigned username "johndoe", "johndoe@b.example.com" would be assigned "johndoe_1" and so forth. Sites that want to create usernames in their own way can do so by implementing hook_email_registration_name.

Login Toboggan


  The LoginToboggan module offers several modifications of the Drupal login system in an external module by offering the following features and usability improvements:
  
  
  Allow users to login using either their username OR their e-mail address.
  



Out of those two Email Registration is a bit more lightweight, so if you don't need the features from LoginToboggan it would make more sense to use that one.