Apexの処理でUserを新規登録することは可能ですが、通常、パスワードの通知メールは送信されません。ですが、DMLOptionsを利用することで通知メールを送信することが可能になっています。
DMLOptionsにはいろいろな機能が用意されていますが、通知メールの送信は『emailHeader.triggerUserEmail = true;』で行うことができます。
実装イメージとしてApexトリガのサンプルを作成しました。
仮ユーザ(カスタムオブジェクト)のレコードがINSERTされたとき、新規ユーザをINSERTして通知メールを送信するという動作になっています。(実際にこのような仕様はないと思うのですが、検証用です。。)