In theory you could use valve auto-heal and bind it so that you're only able to see the gun when you're holding down the button.
(I'm not sure your level of knowledge on the game/scripting and I'm bored so I'll type out explanations and stuff)
So the way Valve's auto-heal works is that you basically use mouse1 to select a new heal target. So say you're walking up to heal target A. Without doing anything you could walk all the way through heal target A's model without pressing a single mouse button and you wouldn't heal them at all (useful for not healing spies on accident I guess, but lol hl.) But if you look at heal target A and press mouse1 you will start to heal them, and continue to heal them for as long as you hold mouse1 and ALSO after you release mouse1. Then to switch targets you just look at heal target B and press and hold the mouse button (or just press it) and you'll start healing them.
A little history is that Valve auto-heal used to do a really weird stuttering problem that resulted in very minor uber % loss, but I think that with the new system they made it is now better than the manual auto-heal script at gaining uber. (Manual auto heal involves switching + and - attack on your medigun so that when you aren't pressing the button you will heal. Manual auto-heal also will not work for my suggested solution to your problem)
NOW: In theory....
This is how I would do it. This will required a crosshair switcher script (I recommend everyone have one of these because so often there are little switched that would be nice from weapon to weapon, class to class, and this is an easy way to do it. If you don't have one https://code.google.com/p/broesels-crosshair-switcher/)
Now, put this in your medic.cfg:
alias +mate_medibeam "+attack; viewmodel_fov 90" (you can change this fov to whatever you want.)
alias -mate_medibeam "-attack; viewmodel_fov 0"
Create two .cfg files: (I find it easiest to just copy another cfg file and delete the innards)
CFG FILE: medibeamon.cfg
bind "+mouse1" "+mate_medibeam"
bind "-mouse1" "-mate_medibeam"
CFG FILE: medibeamoff.cfg
bind "mouse1" "+attack"
In your crosshair switcher: (If it's the one I linked this will be in the cfg\crosshairswitcher\settings.cfg. Then under the \\MEDIC section)
alias medic_primary "big; green; cross; off_with_muzzleflash;exec medibeamoff"
alias medic_secondary "huge; cyan; open_cross; 84; exec medibeamon"
alias medic_melee "default_melee_crosshair;exec medibeamoff"