Dear iVenky,
when you are modeling hardware, you can write code in different ways, independent on the HDL you are using (i.e., either VHDL or Verilog). Behavioral modeling refers to a way to write code (more precisely, to model your hardware design) based on its functionality: it's like writing the algorithm that solves your problem. With structural code, on the other hand, you are connecting different parts together to get the final design.
In some way you will generally use a mixture of the twos: if you think to bottom-up approach, you first create behavioral/algorithmic code for lowest-level blocks (e.g., flip-flop) and once you move up across the abstraction levels you mix different blocks together and connect them in a structural code (e.g., shift register). This is just a simplisitc overview, but gives you an insight on the difference.
Cheers