This came up as a “choose the missing word” question, with the following as options:
I chose “junio” and got it wrong, because the system specifically wanted “julio”, even though there's no way I could have known that. Could you either change the words or make the system accept both?
I think that “mia amiko alvenos julion” is correct, maybe not very common. “en julion” (accusative) is not correct, as uSiuHung points out in another comment: To indicate a time you can use a preposition (en julio), an adverb (julie) or in certain cases the accusative (julion), but not two of them. An accusative after a preposition is only used to indicate movement in a certain direction.
Yes, in Esperanto there's a difference between “veni” and “alveni.” “Alveni” clearly refers only to arrival; so the sentence doesn't say anything about how long my friend is going to stay. “Veni” is more general; it could also be used to imply that my friend is going to stay for a certain time in July. It could also mean that my friend is just passing by and not going to stay at all. That depends on context.
But I think Saul Nathan's question is whether the English “to arrive” and “to come” have a similar difference in meaning. Being an E3L speaker I am unsure about this, and that's why I could not answer Saul's question.
The difference between "come" and "arrive" in English is very similar to the difference you've outlined between "veni" and "alveni" in Esperanto. "To come" is more general, "to arrive" is more specific. The difference is small perhaps, but for a language learning exercise one needs to translate as closely and precisely as one can.