From what I see on jisho (still learning Japanese), 本日 is an adverbial noun, and thus commonly is used to modify verbs, rather than standing on it's own. 今日 isn't adverbial, and is used purely as a temporal noun, indicating a specific time (namely, today). They both mean the same thing, but are used in different ways. Usage difference may be as follows:
本日はでかける。 I am leaving today.
今日、出かける。 Today, I am leaving.
The meaning is the same, but its usage is the difference. Notice: I am still learning Japanese, so I maybe completely wrong. This is just what I see. Thank you for reading.
I am learning too. And this helps. Thank you.
"本日" is a formal word. When you would like to speak a formal sentence, you say "本日" in stead of "今日".
You'll often hear 本日 during a news broadcast, where formality is important.
Hi! I am also learning Japanese. So mine is also an impression. I have noticed that the difference is in the formality of the speech. As for example, in this advice of a coffee shop:
本日も11時から18時まで営業しております!!!
本日 vs 今日
They both mean Today but why is 今日 used to start a sentence and not 本日?
Ex. 今日は雨です。