SOLVED!
CB have this great feature out of the box! I only installed CB Fields plugin (can be found on Incubator area, professional membership only access).
In the CB Fields plugin I made the following trigger in less than a minute:
onAfterUserRegistration >field 'username'> set value equal to> [user_id]
or
onAfterUserRegistration >field 'username'> set value equal to> [firstname][user_id]
or
onAfterUserRegistration >field 'username'> set value equal to> [email]
After setting this, go to CB Configuration Manager > User profile and on the 'Username' option set it to 'No', and users will not be able to change the username after registration, and because of this the username will remain unique.
After this go to CB Configuration Manager > General and on the 'Login field type' option set it to 'Email only' and that's it! No more username field!
Thank you nant & krileon for your answers

!
p.s. Please read
this post
. It is about email as username but you will get the idea of using the unique joomla user ID or any other field value as you wish as username, without needing the username field on the registration form!