I can't understand why in WCF we need a SecurityBindingElement in binding for authentication purposes if we have userNameAuthentication in serviceBehaviors (or ClientCredentials if mode is certificate)? Or it's just a new extension and alternate way of authentication implementation.
No it is not anything new.
Binding element is part of binding - it specify protocol stack / policies needed to communicate with the service. If you set security binding with user name authentication in the binding you are saying that your service demands WS-Security UserName token profile for authentication = it says what must be transferred in the message.
Behavior says how the authentication is configured. You got a message and now you must somehow validate credentials on the service. Behavior specifies the way how these credentials will be validated. On client side behavior specifies what credentials will be passed to the service.